Author: kayyagari
Date: Mon Jun 3 17:30:32 2013
New Revision: 1489069
URL: http://svn.apache.org/r1489069
Log:
fixed an issue with the reused buffer
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
URL:
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java?rev=1489069&r1=1489068&r2=1489069&view=diff
==============================================================================
---
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
(original)
+++
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
Mon Jun 3 17:30:32 2013
@@ -2050,12 +2050,10 @@ public class RecordManager
{
return;
}
-
+
// if the btree doesn't keep revisions just add them to the free page
list
- if( !isKeepRevisions() )
+ if( !keepRevisions )
{
- PageIO[] pages = new PageIO[freePages.size()];
-
int start = 0;
PageIO tailPage = null;
@@ -2077,31 +2075,29 @@ public class RecordManager
tailPage.setNextPage( NO_PAGE );
tailPage.setSize( 0 );
- pages[0] = tailPage;
-
- if( freePages.size() > start )
+ try
{
- for( ; start < freePages.size(); start++ )
+ flushPages( tailPage );
+
+ if( freePages.size() > start )
{
- long nextOffset = freePages.get( start ).getOffset();
- tailPage.setNextPage( nextOffset );
-
- PageIO tmp = new PageIO( nextOffset );
- tmp.setData( data );
- tmp.setNextPage( NO_PAGE );
- tmp.setSize( 0 );
-
- pages[start] = tmp;
-
- tailPage = tmp;
+ for( ; start < freePages.size(); start++ )
+ {
+ long nextOffset = freePages.get( start ).getOffset();
+ tailPage.setNextPage( nextOffset );
+
+ PageIO next = new PageIO( nextOffset );
+ data = ByteBuffer.allocateDirect( pageSize );
+ next.setData( data );
+ next.setNextPage( NO_PAGE );
+ next.setSize( 0 );
+
+ flushPages( tailPage, next );
+ tailPage = next;
+ }
}
- }
-
- lastFreePage = tailPage.getOffset();
-
- try
- {
- flushPages( pages );
+
+ lastFreePage = tailPage.getOffset();
}
catch( IOException e )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]