You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/11/02 10:24:18 UTC

svn commit: r1711921 - /directory/mavibot/branches/single-value/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java

Author: elecharny
Date: Mon Nov  2 09:24:18 2015
New Revision: 1711921

URL: http://svn.apache.org/viewvc?rev=1711921&view=rev
Log:
o Write the BtreeHeader when we create the management BTree
o Fixed a compilation failure

Modified:
    directory/mavibot/branches/single-value/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java

Modified: directory/mavibot/branches/single-value/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java
URL: http://svn.apache.org/viewvc/directory/mavibot/branches/single-value/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java?rev=1711921&r1=1711920&r2=1711921&view=diff
==============================================================================
--- directory/mavibot/branches/single-value/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java (original)
+++ directory/mavibot/branches/single-value/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java Mon Nov  2 09:24:18 2015
@@ -1557,8 +1557,8 @@ public class RecordManager extends Abstr
         btreeInfo.setBtree( btree );
         btreeInfo.setPageSize( btree.getPageSize() );
         btreeInfo.setBtreeName( btree.getName() );
-        btreeInfo.setKeySerializer( btree.getKeySerializerFQCN() );
-        btreeInfo.setValueSerializer( btree.getValueSerializerFQCN() );
+        btreeInfo.setKeySerializerFQCN( btree.getKeySerializerFQCN() );
+        btreeInfo.setValueSerializerFQCN( btree.getValueSerializerFQCN() );
         
         return btreeInfo;
     }
@@ -1597,8 +1597,8 @@ public class RecordManager extends Abstr
                 throw new BTreeAlreadyManagedException( name );
             }
 
-            // Get the B-tree header offset
-            PageIO[] btreeHeaderPageIos = getFreePageIOs( 0 );
+            // Get the B-tree header offset (reclaim a 1 byte page to get at least one page)
+            PageIO[] btreeHeaderPageIos = getFreePageIOs( 1 );
             long btreeHeaderOffset = btreeHeaderPageIos[0].getOffset();
             BTreeHeader<K, V> btreeHeader = ( ( AbstractBTree<K, V> ) btree ).getBtreeHeader();
             ( ( PersistedBTree<K, V> ) btree ).setBtreeHeaderOffset( btreeHeaderOffset );
@@ -1606,14 +1606,14 @@ public class RecordManager extends Abstr
 
             // Get the B-tree info offset
             BTreeInfo<K, V> btreeInfo = createBtreeInfo( btree );
-            PageIO[] btreeInfoPageIos = getFreePageIOs( 0 );
+            PageIO[] btreeInfoPageIos = getFreePageIOs( 1 );
             long btreeInfoOffset = btreeInfoPageIos[0].getOffset();
             ( ( PersistedBTree<K, V> ) btree ).setBtreeInfoOffset( btreeInfoOffset );
             context.addPage( btreeInfoOffset, btreeInfo );
 
             // Get the B-tree root page offset
             Page<K, V> rootPage = btreeHeader.getRootPage();
-            PageIO[] rootPageIos = getFreePageIOs( 0 );
+            PageIO[] rootPageIos = getFreePageIOs( 1 );
             long rootPageOffset = rootPageIos[0].getOffset();
             btreeHeader.setRootPageOffset( rootPageOffset );
             ( ( PersistedLeaf<K, V> ) rootPage ).setOffset( rootPageOffset );
@@ -1756,6 +1756,9 @@ public class RecordManager extends Abstr
 
         LOG.debug( "Flushing the newly managed '{}' btree rootpage", btree.getName() );
         flushPages( rootPageIos );
+        
+        // And the B-tree header
+        writeBtreeHeader( btree, btreeHeader );
 
         // Now, if this is a new B-tree, add it t        // And in the Map of currentBtreeHeaders and newBtreeHeaders
         currentBTreeHeaders.put( name, btreeHeader );