You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2014/07/11 14:35:52 UTC

svn commit: r1609705 - in /directory/mavibot/trunk/mavibot/src: main/java/org/apache/directory/mavibot/btree/RecordManager.java test/java/org/apache/directory/mavibot/btree/RecordManagerTest.java

Author: kayyagari
Date: Fri Jul 11 12:35:52 2014
New Revision: 1609705

URL: http://svn.apache.org/r1609705
Log:
o made CPB field and checkOffset() method package protected
o added a test that demonstrates bad offset values present in CPB after reloading RM 

Modified:
    directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java
    directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/RecordManagerTest.java

Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java?rev=1609705&r1=1609704&r2=1609705&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java Fri Jul 11 12:35:52 2014
@@ -106,7 +106,7 @@ public class RecordManager extends Abstr
      * A B-tree used to manage the page that has been copied in a new version.
      * Those pages can be reclaimed when the associated version is dead.
      **/
-    private BTree<RevisionName, long[]> copiedPageBtree;
+    /* no qualifier */ BTree<RevisionName, long[]> copiedPageBtree;
 
     /** A constant for an offset on a non existing page */
     public static final long NO_PAGE = -1L;
@@ -818,7 +818,7 @@ public class RecordManager extends Abstr
      * @param offset The offset to check
      * @throws InvalidOffsetException If the offset is not valid
      */
-    private void checkOffset( long offset )
+    /* no qualifier */ void checkOffset( long offset )
     {
         if ( ( offset < 0 ) || ( offset > endOfFileOffset ) || ( ( offset % pageSize ) != 0 ) )
         {

Modified: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/RecordManagerTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/RecordManagerTest.java?rev=1609705&r1=1609704&r2=1609705&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/RecordManagerTest.java (original)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/RecordManagerTest.java Fri Jul 11 12:35:52 2014
@@ -893,4 +893,35 @@ public class RecordManagerTest
         btree.insert( 1L, "V1" );
         btree.insert( 2L, "V2" );
     }
+    
+    @Test
+    @Ignore("Fails with bad offset error")
+    public void testOffsetsInCopiedPageBTree() throws Exception
+    {
+        btree.insert( 1L, "V1" );
+
+        checkCpbOffsets();
+        
+        openRecordManagerAndBtree();
+        
+        checkCpbOffsets();
+    }
+
+    private void checkCpbOffsets() throws Exception
+    {
+        TupleCursor<RevisionName, long[]> cursor = recordManager.copiedPageBtree.browse();
+        
+        while( cursor.hasNext() )
+        {
+            Tuple<RevisionName, long[]> t = cursor.next();
+            long[] offsets = t.getValue();
+            for( long o : offsets )
+            {
+                recordManager.checkOffset( o );
+            }
+        }
+      
+        cursor.close();
+    }
+    
 }