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 09:33:05 UTC

svn commit: r1411098 - in /qpid/proton/trunk: proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java tests/proton_tests/engine.py

Author: rgodfrey
Date: Mon Nov 19 08:33:04 2012
New Revision: 1411098

URL: http://svn.apache.org/viewvc?rev=1411098&view=rev
Log:
PROTON-141 : Fix bug in large message transfers

Modified:
    qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
    qpid/proton/trunk/tests/proton_tests/engine.py

Modified: qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java?rev=1411098&r1=1411097&r2=1411098&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java (original)
+++ qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java Mon Nov 19 08:33:04 2012
@@ -181,7 +181,7 @@ public class TransportImpl extends Endpo
             _overflowBuffer.get(bytes, offset, overflowWritten);
             written+=overflowWritten;
         }
-        if(!_overflowBuffer.hasRemaining())
+        else if(!_overflowBuffer.hasRemaining())
         {
             _overflowBuffer.clear();
 
@@ -203,10 +203,10 @@ public class TransportImpl extends Endpo
             written += processEnd(outputBuffer);
             written += processClose(outputBuffer);
             _overflowBuffer.flip();
+            written -= _overflowBuffer.remaining();
         }
 
-
-        return written - _overflowBuffer.remaining();
+        return written;
     }
 
     public Sasl sasl()

Modified: qpid/proton/trunk/tests/proton_tests/engine.py
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/tests/proton_tests/engine.py?rev=1411098&r1=1411097&r2=1411098&view=diff
==============================================================================
--- qpid/proton/trunk/tests/proton_tests/engine.py (original)
+++ qpid/proton/trunk/tests/proton_tests/engine.py Mon Nov 19 08:33:04 2012
@@ -656,6 +656,33 @@ class MaxFrameTransferTest(Test):
 
     bytes = self.rcv.recv(1024)
     assert bytes == None
+    
+  def testBigMessage(self):
+    """
+    Test transfering a big message.
+    """
+    self.snd, self.rcv = self.link("test-link")
+    self.c1 = self.snd.session.connection
+    self.c2 = self.rcv.session.connection
+    self.snd.open()
+    self.rcv.open()
+    self.pump()
+
+    self.rcv.flow(2)
+    self.snd.delivery("tag")
+    msg = self.message(1024*256)
+    n = self.snd.send(msg)
+    assert n == len(msg)
+    assert self.snd.advance()
+
+    self.pump()
+
+    bytes = self.rcv.recv(1024*256)
+    assert bytes == msg
+
+    bytes = self.rcv.recv(1024)
+    assert bytes == None
+
 
 class IdleTimeoutTest(Test):
 



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