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]