Fixed code to catch exception and rethrow instead of continuing
git-svn-id: https://hyracks.googlecode.com/svn/trunk/hyracks@160 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java
index e8458ef..5f5d916 100644
--- a/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java
+++ b/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java
@@ -15,7 +15,6 @@
package edu.uci.ics.hyracks.storage.am.btree.dataflow;
import java.io.DataOutput;
-import java.io.FileNotFoundException;
import java.nio.ByteBuffer;
import edu.uci.ics.hyracks.api.context.IHyracksContext;
@@ -37,9 +36,9 @@
public class BTreeSearchOperatorNodePushable extends AbstractUnaryOutputSourceOperatorNodePushable {
private BTreeOpHelper btreeOpHelper;
private boolean isForward;
- private ITupleReferenceFactory[] searchKeys;
+ private ITupleReferenceFactory[] searchKeys;
private int searchKeyFieldCount;
-
+
public BTreeSearchOperatorNodePushable(AbstractBTreeOperatorDescriptor opDesc, IHyracksContext ctx,
boolean isForward, ITupleReferenceFactory[] searchKeys, int searchKeyFields) {
btreeOpHelper = new BTreeOpHelper(opDesc, ctx, false);
@@ -47,42 +46,41 @@
this.searchKeys = searchKeys;
this.searchKeyFieldCount = searchKeyFields;
}
-
+
@Override
public void initialize() throws HyracksDataException {
- AbstractBTreeOperatorDescriptor opDesc = btreeOpHelper.getOperatorDescriptor();
+ AbstractBTreeOperatorDescriptor opDesc = btreeOpHelper.getOperatorDescriptor();
IHyracksContext ctx = btreeOpHelper.getHyracksContext();
IBTreeLeafFrame cursorFrame = opDesc.getLeafFactory().getFrame();
IBTreeCursor cursor = new RangeSearchCursor(cursorFrame);
- BTree btree = null;
+ BTree btree = null;
try {
- btreeOpHelper.init();
+ btreeOpHelper.init();
//btreeOpHelper.fill();
btree = btreeOpHelper.getBTree();
-
+
IBTreeLeafFrame leafFrame = btreeOpHelper.getLeafFrame();
IBTreeInteriorFrame interiorFrame = btreeOpHelper.getInteriorFrame();
-
+
// construct range predicate
assert (searchKeyFieldCount <= btree.getMultiComparator().getKeyFieldCount());
IBinaryComparator[] searchComparators = new IBinaryComparator[searchKeyFieldCount];
- for (int i = 0; i < searchKeyFieldCount; i++) {
- searchComparators[i] = btree.getMultiComparator().getComparators()[i];
+ for (int i = 0; i < searchKeyFieldCount; i++) {
+ searchComparators[i] = btree.getMultiComparator().getComparators()[i];
}
- MultiComparator searchCmp = new MultiComparator(btree.getMultiComparator().getFieldCount(), searchComparators);
-
+ MultiComparator searchCmp = new MultiComparator(btree.getMultiComparator().getFieldCount(),
+ searchComparators);
+
ITupleReference lowKey = searchKeys[0].createTuple(ctx);
ITupleReference highKey = searchKeys[1].createTuple(ctx);
-
+
RangePredicate rangePred = new RangePredicate(isForward, lowKey, highKey, searchCmp);
btree.search(cursor, rangePred, leafFrame, interiorFrame);
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
} catch (Exception e) {
- e.printStackTrace();
+ throw new HyracksDataException(e);
}
MultiComparator cmp = btree.getMultiComparator();
@@ -91,13 +89,13 @@
appender.reset(frame, true);
ArrayTupleBuilder tb = new ArrayTupleBuilder(cmp.getFieldCount());
DataOutput dos = tb.getDataOutput();
-
+
try {
while (cursor.hasNext()) {
- tb.reset();
+ tb.reset();
cursor.next();
-
- ITupleReference frameTuple = cursor.getTuple();
+
+ ITupleReference frameTuple = cursor.getTuple();
for (int i = 0; i < frameTuple.getFieldCount(); i++) {
dos.write(frameTuple.getFieldData(i), frameTuple.getFieldStart(i), frameTuple.getFieldLength(i));
tb.addFieldEndOffset();
@@ -119,12 +117,12 @@
if (appender.getTupleCount() > 0) {
FrameUtils.flushFrame(frame, writer);
}
-
+
cursor.close();
- writer.close();
+ writer.close();
} catch (Exception e) {
- e.printStackTrace();
+ throw new HyracksDataException(e);
}
}
}
\ No newline at end of file