diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
index 959e356..c9b8896 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTree.java
@@ -319,7 +319,7 @@
             LSMBTreeDiskComponent component = (LSMBTreeDiskComponent) c;
             BTree btree = component.getBTree();
             BloomFilter bloomFilter = component.getBloomFilter();
-            btree.deactivate();
+            btree.deactivateCloseHandle();
             bloomFilter.deactivate();
         }
         for (ILSMComponent c : secondDiskComponents) {
@@ -328,7 +328,7 @@
                 LSMBTreeDiskComponent component = (LSMBTreeDiskComponent) c;
                 BTree btree = component.getBTree();
                 BloomFilter bloomFilter = component.getBloomFilter();
-                btree.deactivate();
+                btree.deactivateCloseHandle();
                 bloomFilter.deactivate();
             }
         }
diff --git a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
index a4f355f..fd60b6d 100644
--- a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
+++ b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/ExternalBTreeWithBuddy.java
@@ -35,7 +35,19 @@
 import org.apache.hyracks.storage.am.btree.impls.BTree;
 import org.apache.hyracks.storage.am.btree.impls.BTree.BTreeBulkLoader;
 import org.apache.hyracks.storage.am.btree.impls.RangePredicate;
-import org.apache.hyracks.storage.am.common.api.*;
+import org.apache.hyracks.storage.am.common.api.IIndexBulkLoader;
+import org.apache.hyracks.storage.am.common.api.IIndexCursor;
+import org.apache.hyracks.storage.am.common.api.IIndexOperationContext;
+import org.apache.hyracks.storage.am.common.api.IMetaDataPageManager;
+import org.apache.hyracks.storage.am.common.api.IModificationOperationCallback;
+import org.apache.hyracks.storage.am.common.api.ISearchOperationCallback;
+import org.apache.hyracks.storage.am.common.api.ISearchPredicate;
+import org.apache.hyracks.storage.am.common.api.ITreeIndex;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexCursor;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexFrameFactory;
+import org.apache.hyracks.storage.am.common.api.ITwoPCIndexBulkLoader;
+import org.apache.hyracks.storage.am.common.api.IndexException;
+import org.apache.hyracks.storage.am.common.api.TreeIndexException;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallback;
 import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation;
 import org.apache.hyracks.storage.am.common.ophelpers.MultiComparator;
@@ -538,8 +550,8 @@
             BTree btree = component.getBTree();
             BTree buddyBtree = component.getBuddyBTree();
             BloomFilter bloomFilter = component.getBloomFilter();
-            btree.deactivate();
-            buddyBtree.deactivate();
+            btree.deactivateCloseHandle();
+            buddyBtree.deactivateCloseHandle();
             bloomFilter.deactivate();
         }
         for (ILSMComponent c : secondDiskComponents) {
@@ -549,8 +561,8 @@
                 BTree btree = component.getBTree();
                 BTree buddyBtree = component.getBuddyBTree();
                 BloomFilter bloomFilter = component.getBloomFilter();
-                btree.deactivate();
-                buddyBtree.deactivate();
+                btree.deactivateCloseHandle();
+                buddyBtree.deactivateCloseHandle();
                 bloomFilter.deactivate();
             }
         }
@@ -603,8 +615,10 @@
                 new LSMComponentFileReferences(insertFileRef, deleteFileRef, bloomFilterFileRef));
         if (createComponent) {
             component.getBloomFilter().create();
+        } else {
+            component.getBTree().activate();
+            component.getBuddyBTree().activate();
         }
-
         component.getBloomFilter().activate();
         return component;
     }
diff --git a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
index 492af2d..51e0fbd 100644
--- a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
+++ b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/ExternalRTree.java
@@ -357,8 +357,8 @@
             RTree rtree = component.getRTree();
             BTree btree = component.getBTree();
             BloomFilter bloomFilter = component.getBloomFilter();
-            rtree.deactivate();
-            btree.deactivate();
+            rtree.deactivateCloseHandle();
+            btree.deactivateCloseHandle();
             bloomFilter.deactivate();
         }
         for (ILSMComponent c : secondDiskComponents) {
@@ -368,8 +368,8 @@
                 RTree rtree = component.getRTree();
                 BTree btree = component.getBTree();
                 BloomFilter bloomFilter = component.getBloomFilter();
-                rtree.deactivate();
-                btree.deactivate();
+                rtree.deactivateCloseHandle();
+                btree.deactivateCloseHandle();
                 bloomFilter.deactivate();
             }
         }
