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 2012/08/17 13:32:43 UTC

svn commit: r1374201 - /labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java

Author: elecharny
Date: Fri Aug 17 11:32:42 2012
New Revision: 1374201

URL: http://svn.apache.org/viewvc?rev=1374201&view=rev
Log:
Fixed a bug in the way we handle cross-boundary buffer read of values

Modified:
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java

Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java?rev=1374201&r1=1374200&r2=1374201&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java Fri Aug 17 11:32:42 2012
@@ -96,8 +96,18 @@ public class BufferHandler
 
         while ( requested != 0 )
         {
-            int nbRead = buffer.limit() - buffer.position();
-            System.arraycopy( buffer.array(), buffer.position(), result, position, nbRead );
+            int nbRemainingRead = buffer.limit() - buffer.position();
+
+            if ( nbRemainingRead > requested )
+            {
+                buffer.get( result, position, requested );
+                break;
+            }
+            else
+            {
+                System.arraycopy( buffer.array(), buffer.position(), result, position, nbRemainingRead );
+                position += nbRemainingRead;
+            }
 
             buffer.clear();
 
@@ -116,7 +126,7 @@ public class BufferHandler
                 throw new IOException( "Not enough bytes in the buffer" );
             }
 
-            requested -= nbRead;
+            requested -= nbRemainingRead;
         }
 
         return result;



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org