Author: rgodfrey
Date: Thu Sep 27 18:46:32 2012
New Revision: 1391161

URL: http://svn.apache.org/viewvc?rev=1391161&view=rev
Log:
PROTON-37 : Fix failing python tests

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

Modified: 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SenderImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SenderImpl.java?rev=1391161&r1=1391160&r2=1391161&view=diff
==============================================================================
--- 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SenderImpl.java
 (original)
+++ 
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/SenderImpl.java
 Thu Sep 27 18:46:32 2012
@@ -122,8 +122,12 @@ public class SenderImpl  extends LinkImp
 
     public void drained()
     {
-        _drained = true;
-        modified();
+        if(getDrain())
+        {
+            _drained = true;
+            setCredit(0);
+            modified();
+        }
     }
 
     boolean clearDrained()

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=1391161&r1=1391160&r2=1391161&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
 Thu Sep 27 18:46:32 2012
@@ -237,23 +237,20 @@ public class TransportImpl extends Endpo
                     TransportSession transportSession = 
sender.getSession().getTransportSession();
                     int credits = sender.getCredit();
                     sender.setCredit(0);
-                    if(credits != 0)
-                    {
-                        
transportLink.setDeliveryCount(transportLink.getDeliveryCount().add(UnsignedInteger.valueOf(credits)));
-                        transportLink.setLinkCredit(UnsignedInteger.ZERO);
+                    
transportLink.setDeliveryCount(transportLink.getDeliveryCount().add(UnsignedInteger.valueOf(credits)));
+                    transportLink.setLinkCredit(UnsignedInteger.ZERO);
 
-                        Flow flow = new Flow();
-                        flow.setHandle(transportLink.getLocalHandle());
-                        
flow.setNextIncomingId(transportSession.getNextIncomingId());
-                        
flow.setIncomingWindow(transportSession.getIncomingWindowSize());
-                        
flow.setOutgoingWindow(transportSession.getOutgoingWindowSize());
-                        
flow.setDeliveryCount(transportLink.getDeliveryCount());
-                        flow.setLinkCredit(transportLink.getLinkCredit());
-                        flow.setDrain(sender.getDrain());
-                        
flow.setNextOutgoingId(transportSession.getNextOutgoingId());
-                        int frameBytes = writeFrame(buffer, 
transportSession.getLocalChannel(), flow, null);
-                        written += frameBytes;
-                    }
+                    Flow flow = new Flow();
+                    flow.setHandle(transportLink.getLocalHandle());
+                    
flow.setNextIncomingId(transportSession.getNextIncomingId());
+                    
flow.setIncomingWindow(transportSession.getIncomingWindowSize());
+                    
flow.setOutgoingWindow(transportSession.getOutgoingWindowSize());
+                    flow.setDeliveryCount(transportLink.getDeliveryCount());
+                    flow.setLinkCredit(transportLink.getLinkCredit());
+                    flow.setDrain(sender.getDrain());
+                    
flow.setNextOutgoingId(transportSession.getNextOutgoingId());
+                    int frameBytes = writeFrame(buffer, 
transportSession.getLocalChannel(), flow, null);
+                    written += frameBytes;
                 }
 
             }
@@ -437,7 +434,7 @@ public class TransportImpl extends Endpo
                 {
                     int credits = receiver.clearUnsentCredits();
                     transportSession.getSession().clearIncomingWindowResize();
-                    if(credits != 0)
+                    if(credits != 0 || receiver.getDrain())
                     {
                         transportLink.addCredit(credits);
                         Flow flow = new Flow();



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

Reply via email to