Make sure to close cursors whenever they are not needed anymore.

git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_lsm_tree@2938 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java b/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
index f3a5c82..13cf23a 100644
--- a/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
+++ b/hyracks-storage-am-lsm-btree/src/main/java/edu/uci/ics/hyracks/storage/am/lsm/btree/impls/LSMBTreePointSearchCursor.java
@@ -76,6 +76,7 @@
                     // if proceed is successful, then there's no need for doing the "unlatch dance"
                     if (((ILSMTreeTupleReference) rangeCursors[i].getTuple()).isAntimatter()) {
                         searchCallback.cancel(predicate.getLowKey());
+                        rangeCursors[i].close();
                         return false;
                     } else {
                         frameTuple = rangeCursors[i].getTuple();
@@ -90,21 +91,20 @@
                     reconciled = true;
 
                     // retraverse
-                    try {
-                        memBTreeAccessor.search(rangeCursors[i], predicate);
-                    } catch (IndexException e) {
-                        throw new HyracksDataException(e);
-                    }
+                    memBTreeAccessor.search(rangeCursors[i], predicate);
                     if (rangeCursors[i].hasNext()) {
                         rangeCursors[i].next();
                         if (((ILSMTreeTupleReference) rangeCursors[i].getTuple()).isAntimatter()) {
                             searchCallback.cancel(predicate.getLowKey());
+                            rangeCursors[i].close();
                             return false;
                         } else {
                             frameTuple = rangeCursors[i].getTuple();
                             foundTuple = true;
                             return true;
                         }
+                    } else {
+                        rangeCursors[i].close();
                     }
                 } else {
                     frameTuple = rangeCursors[i].getTuple();
@@ -112,6 +112,8 @@
                     foundTuple = true;
                     return true;
                 }
+            } else {
+                rangeCursors[i].close();
             }
         }
         return false;