minor fixes for demo

git-svn-id: https://hyracks.googlecode.com/svn/trunk@122 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java b/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java
index 8ddcf08..08f9e1e 100644
--- a/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java
+++ b/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeOpHelper.java
@@ -60,8 +60,14 @@
     	
     	IBufferCache bufferCache = opDesc.getBufferCacheProvider().getBufferCache();
         FileManager fileManager = opDesc.getBufferCacheProvider().getFileManager();
-
-        File f = new File(opDesc.getBtreeFileName());
+        
+        // hack for testing
+        //String s = bufferCache.toString();
+        //String[] splits = s.split("\\.");
+        //System.out.println(splits[splits.length-1]);
+        //File f = new File("/tmp/" + splits[splits.length-1]);
+        
+        File f = new File(opDesc.getBtreeFileName());        
         RandomAccessFile raf = new RandomAccessFile(f, "rw");
         
         if (!f.exists() && !createBTree) {
diff --git a/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java b/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java
index 826c7ec..cdc6a73 100644
--- a/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java
+++ b/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java
@@ -59,7 +59,7 @@
         BTree btree = null;        
         try {
         	btreeOpHelper.init();
-            btreeOpHelper.fill();
+            //btreeOpHelper.fill();
             btree = btreeOpHelper.getBTree();
 
             IBTreeLeafFrame leafFrame = btreeOpHelper.getLeafFrame();
diff --git a/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/impls/BTree.java b/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/impls/BTree.java
index b170d08..1c346c6 100644
--- a/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/impls/BTree.java
+++ b/hyracks/hyracks-storage-am-btree/src/main/java/edu/uci/ics/hyracks/storage/am/btree/impls/BTree.java
@@ -44,8 +44,9 @@
                                         // maxPage
     private final int rootPage = 1; // the root page never changes
     
-    private boolean created = false;
-            
+    private boolean created = false;        
+    private boolean loaded = false;
+    
     private final IBufferCache bufferCache;
     private int fileId;
     private final IBTreeInteriorFrameFactory interiorFrameFactory;
@@ -1289,7 +1290,10 @@
     
     // assumes btree has been created and opened
     public BulkLoadContext beginBulkLoad(float fillFactor, IBTreeLeafFrame leafFrame, IBTreeInteriorFrame interiorFrame, IBTreeMetaDataFrame metaFrame) throws Exception {
-        BulkLoadContext ctx = new BulkLoadContext(fillFactor, leafFrame, interiorFrame, metaFrame);
+        
+    	if(loaded) throw new BTreeException("Trying to bulk-load BTree but has BTree already been loaded.");
+    	
+    	BulkLoadContext ctx = new BulkLoadContext(fillFactor, leafFrame, interiorFrame, metaFrame);
         ctx.nodeFrontiers.get(0).lastTuple.setFieldCount(cmp.getFieldCount());
         ctx.splitKey.getTuple().setFieldCount(cmp.getKeyFieldCount());
         return ctx;
@@ -1354,6 +1358,8 @@
         }
         // debug
         currentLevel = (byte) ctx.nodeFrontiers.size();
+        
+        loaded = true;
     }
         
     public IBTreeInteriorFrameFactory getInteriorFrameFactory() {