Author: rgodfrey
Date: Thu Oct 4 09:38:38 2012
New Revision: 1393971
URL: http://svn.apache.org/viewvc?rev=1393971&view=rev
Log:
PROTON-55 : Correct accounting for initial delivery-count at the receiver
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportLink.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSender.java
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=1393971&r1=1393970&r2=1393971&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 Oct 4 09:38:38 2012
@@ -958,6 +958,10 @@ public class TransportImpl extends Endpo
{
link = transportLink.getLink();
}
+ if(attach.getRole() == Role.SENDER)
+ {
+
transportLink.setDeliveryCount(attach.getInitialDeliveryCount());
+ }
link.setRemoteState(EndpointState.ACTIVE);
Source source = (Source) attach.getSource();
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportLink.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportLink.java?rev=1393971&r1=1393970&r2=1393971&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportLink.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportLink.java
Thu Oct 4 09:38:38 2012
@@ -29,7 +29,7 @@ class TransportLink<T extends LinkImpl>
private UnsignedInteger _localHandle;
private String _name;
private UnsignedInteger _remoteHandle;
- private UnsignedInteger _deliveryCount = UnsignedInteger.ZERO;
+ private UnsignedInteger _deliveryCount;
private UnsignedInteger _linkCredit = UnsignedInteger.ZERO;
private T _link;
private UnsignedInteger _remoteDeliveryCount;
@@ -178,4 +178,9 @@ class TransportLink<T extends LinkImpl>
{
_attachSent = true;
}
+
+ public void setRemoteDeliveryCount(UnsignedInteger remoteDeliveryCount)
+ {
+ _remoteDeliveryCount = remoteDeliveryCount;
+ }
}
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSender.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSender.java?rev=1393971&r1=1393970&r2=1393971&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSender.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSender.java
Thu Oct 4 09:38:38 2012
@@ -27,10 +27,12 @@ import org.apache.qpid.proton.type.trans
class TransportSender extends TransportLink<SenderImpl>
{
private boolean _drain;
+ private static final UnsignedInteger ORIGINAL_DELIVERY_COUNT =
UnsignedInteger.ZERO;
TransportSender(SenderImpl link)
{
super(link);
+ setDeliveryCount(ORIGINAL_DELIVERY_COUNT);
link.setTransportLink(this);
}
@@ -42,7 +44,9 @@ class TransportSender extends TransportL
getLink().setDrain(flow.getDrain());
int oldCredit = getLink().getCredit();
UnsignedInteger oldLimit = getLinkCredit().add(getDeliveryCount());
- UnsignedInteger transferLimit =
flow.getLinkCredit().add(flow.getDeliveryCount());
+ UnsignedInteger transferLimit =
flow.getLinkCredit().add(flow.getDeliveryCount() == null
+ ?
ORIGINAL_DELIVERY_COUNT
+ :
flow.getDeliveryCount());
UnsignedInteger linkCredit =
transferLimit.subtract(getDeliveryCount());
setLinkCredit(linkCredit);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]