Author: rgodfrey
Date: Mon Nov 19 16:24:35 2012
New Revision: 1411277

URL: http://svn.apache.org/viewvc?rev=1411277&view=rev
Log:
PROTON-146 : Simplified CompositeWritableBuffer impl to avoid help buffer 
overflow exceptions.

Modified:
    
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeWritableBuffer.java

Modified: 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeWritableBuffer.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeWritableBuffer.java?rev=1411277&r1=1411276&r2=1411277&view=diff
==============================================================================
--- 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeWritableBuffer.java
 (original)
+++ 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeWritableBuffer.java
 Mon Nov 19 16:24:35 2012
@@ -51,10 +51,15 @@ public class CompositeWritableBuffer imp
 
     public void putShort(short s)
     {
-        if(_first.remaining() >= 2)
+        int remaining = _first.remaining();
+        if(remaining >= 2)
         {
             _first.putShort(s);
         }
+        else if(remaining ==0 )
+        {
+            _second.putShort(s);
+        }
         else
         {
             ByteBuffer wrap = ByteBuffer.wrap(new byte[2]);
@@ -65,10 +70,15 @@ public class CompositeWritableBuffer imp
 
     public void putInt(int i)
     {
-        if(_first.remaining() >= 4)
+        int remaining = _first.remaining();
+        if(remaining >= 4)
         {
             _first.putInt(i);
         }
+        else if(remaining ==0 )
+        {
+            _second.putInt(i);
+        }
         else
         {
             ByteBuffer wrap = ByteBuffer.wrap(new byte[4]);
@@ -79,10 +89,15 @@ public class CompositeWritableBuffer imp
 
     public void putLong(long l)
     {
-        if(_first.remaining() >= 8)
+        int remaining = _first.remaining();
+        if(remaining >= 8)
         {
             _first.putLong(l);
         }
+        else if(remaining ==0 )
+        {
+            _second.putLong(l);
+        }
         else
         {
             ByteBuffer wrap = ByteBuffer.wrap(new byte[8]);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to