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]