You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by el...@apache.org on 2013/03/15 14:48:46 UTC
svn commit: r1456954 - in /labs/mavibot/trunk/mavibot/src:
main/java/org/apache/mavibot/btree/store/RecordManager.java
test/java/org/apache/mavibot/btree/store/RecordManagerTest.java
Author: elecharny
Date: Fri Mar 15 13:48:46 2013
New Revision: 1456954
URL: http://svn.apache.org/r1456954
Log:
o Added more than one value in a page, stored the btree, and read it back
o Fixed a NPE when writing data in a page : when the data was filling the last page completely, that was generating a NPE.
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/store/RecordManager.java
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/store/RecordManagerTest.java
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/store/RecordManager.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/store/RecordManager.java?rev=1456954&r1=1456953&r2=1456954&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/store/RecordManager.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/store/RecordManager.java Fri Mar 15 13:48:46 2013
@@ -34,12 +34,12 @@ import java.util.Set;
import org.apache.mavibot.btree.BTree;
import org.apache.mavibot.btree.BTreeFactory;
+import org.apache.mavibot.btree.ElementHolder;
import org.apache.mavibot.btree.Leaf;
import org.apache.mavibot.btree.MemoryHolder;
import org.apache.mavibot.btree.Node;
import org.apache.mavibot.btree.Page;
import org.apache.mavibot.btree.ReferenceHolder;
-import org.apache.mavibot.btree.ElementHolder;
import org.apache.mavibot.btree.exception.BTreeAlreadyManagedException;
import org.apache.mavibot.btree.exception.EndOfFileExceededException;
import org.apache.mavibot.btree.serializer.IntSerializer;
@@ -1256,6 +1256,13 @@ public class RecordManager
pageData.put( bytes, bytes.length - nbStored, remaining );
pageData.reset();
pageNb++;
+
+ if ( pageNb == pageIos.length )
+ {
+ // We can stop here : we have reach the end of the page
+ break;
+ }
+
pageData = pageIos[pageNb].getData();
pagePos = LINK_SIZE;
nbStored -= remaining;
Modified: labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/store/RecordManagerTest.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/store/RecordManagerTest.java?rev=1456954&r1=1456953&r2=1456954&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/store/RecordManagerTest.java (original)
+++ labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/store/RecordManagerTest.java Fri Mar 15 13:48:46 2013
@@ -30,6 +30,7 @@ import java.util.Set;
import org.apache.mavibot.btree.BTree;
import org.apache.mavibot.btree.exception.BTreeAlreadyManagedException;
+import org.apache.mavibot.btree.exception.KeyNotFoundException;
import org.apache.mavibot.btree.serializer.LongSerializer;
import org.apache.mavibot.btree.serializer.StringSerializer;
import org.junit.Test;
@@ -92,9 +93,10 @@ public class RecordManagerTest
/**
* Test the creation of a RecordManager with a BTree containing data.
+ * @throws KeyNotFoundException
*/
@Test
- public void testRecordManagerWithBTree() throws IOException, BTreeAlreadyManagedException
+ public void testRecordManagerWithBTree() throws IOException, BTreeAlreadyManagedException, KeyNotFoundException
{
File tempFile = File.createTempFile( "mavibot", ".db" );
String tempFileName = tempFile.getAbsolutePath();
@@ -110,8 +112,10 @@ public class RecordManagerTest
// And make it managed by the RM
recordManager.manage( btree );
- // Now, add some elemnts in the BTree
+ // Now, add some elements in the BTree
+ btree.insert( 3L, "V3" );
btree.insert( 1L, "V1" );
+ btree.insert( 5L, "V5" );
// Close the recordManager
recordManager.close();
@@ -126,7 +130,7 @@ public class RecordManagerTest
assertEquals( 1, managedBTrees.size() );
assertTrue( managedBTrees.contains( "test" ) );
- BTree btree1 = recordManager1.getManagedTree( "test" );
+ BTree<Long, String> btree1 = recordManager1.getManagedTree( "test" );
assertNotNull( btree1 );
assertEquals( btree.getComparator().getClass().getName(), btree1.getComparator().getClass().getName() );
@@ -137,5 +141,13 @@ public class RecordManagerTest
assertEquals( btree.getPageSize(), btree1.getPageSize() );
assertEquals( btree.getRevision(), btree1.getRevision() );
assertEquals( btree.getValueSerializer().getClass().getName(), btree1.getValueSerializer().getClass().getName() );
+
+ // Check the stord element
+ assertTrue( btree1.exist( 1L ) );
+ assertTrue( btree1.exist( 3L ) );
+ assertTrue( btree1.exist( 5L ) );
+ assertEquals( "V1", btree1.get( 1L ) );
+ assertEquals( "V3", btree1.get( 3L ) );
+ assertEquals( "V5", btree1.get( 5L ) );
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org