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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to