Author: kayyagari
Date: Fri Jun 7 12:13:46 2013
New Revision: 1490606
URL: http://svn.apache.org/r1490606
Log:
o fixed the size of children's array
o fixed the getRightmostKey() method
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
URL:
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java?rev=1490606&r1=1490605&r2=1490606&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
(original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
Fri Jun 7 12:13:46 2013
@@ -83,12 +83,12 @@ import org.apache.mavibot.btree.exceptio
if ( btree.isManaged() )
{
children = ( ReferenceHolder<Page<K, V>, K, V>[] )
Array.newInstance( ReferenceHolder.class,
- btree.getPageSize() );
+ btree.getPageSize() + 1 );
}
else
{
children = ( MemoryHolder[] ) Array.newInstance(
MemoryHolder.class,
- btree.getPageSize() );
+ btree.getPageSize() + 1 );
}
children[0] = btree.createHolder( leftPage );
@@ -123,7 +123,7 @@ import org.apache.mavibot.btree.exceptio
// Create the children array, and store the left and right children
children = ( ReferenceHolder<Page<K, V>, K, V>[] ) Array.newInstance(
ReferenceHolder.class,
- btree.getPageSize() );
+ btree.getPageSize() + 1 );
children[0] = leftPage;
children[1] = rightPage;
@@ -1219,7 +1219,14 @@ import org.apache.mavibot.btree.exceptio
*/
public K getRightMostKey() throws EndOfFileExceededException, IOException
{
- return children[nbElems - 1].getValue( btree ).getRightMostKey();
+ int index = ( nbElems + 1 ) - 1;
+
+ if( children[index] != null )
+ {
+ return children[ index ].getValue( btree ).getRightMostKey();
+ }
+
+ return children[ nbElems - 1 ].getValue( btree ).getRightMostKey();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]