You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2012/11/19 17:24:36 UTC

svn commit: r1411277 - /qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeWritableBuffer.java

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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org