summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-02-20 15:42:00 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-02-20 15:42:00 +0000
commite9f5602cdf5b100a348a2f95c620805ffab803b9 (patch)
tree7f484ad10fd1e5c57d14daa4a40cba07f9821140 /qpid/java
parentde8928de2d9f72fd862059ab2aa5b921f95a0a30 (diff)
downloadqpid-python-e9f5602cdf5b100a348a2f95c620805ffab803b9.tar.gz
QPID-5570 : Client incorrectly acknowledges prefetched messages with client-ack
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1570234 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ReceivingLinkEndpoint.java36
1 files changed, 19 insertions, 17 deletions
diff --git a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ReceivingLinkEndpoint.java b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ReceivingLinkEndpoint.java
index 8a5940658c..0407453160 100644
--- a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ReceivingLinkEndpoint.java
+++ b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/ReceivingLinkEndpoint.java
@@ -370,29 +370,31 @@ public class ReceivingLinkEndpoint extends LinkEndpoint<ReceivingLinkListener>
UnsignedInteger first = deliveryId;
UnsignedInteger last = first;
- while(iter.hasNext())
+ if(!firstTag.equals(lastTag))
{
- tag = iter.next();
- tagsToUpdate.add(tag);
+ while(iter.hasNext())
+ {
+ tag = iter.next();
+ tagsToUpdate.add(tag);
- deliveryId = _unsettledIds.get(tag).getDeliveryId();
+ deliveryId = _unsettledIds.get(tag).getDeliveryId();
- if(deliveryId.equals(last.add(UnsignedInteger.ONE)))
- {
- last = deliveryId;
- }
- else
- {
- ranges.put(first,last);
- first = last = deliveryId;
- }
+ if(deliveryId.equals(last.add(UnsignedInteger.ONE)))
+ {
+ last = deliveryId;
+ }
+ else
+ {
+ ranges.put(first,last);
+ first = last = deliveryId;
+ }
- if(tag.equals(lastTag))
- {
- break;
+ if(tag.equals(lastTag))
+ {
+ break;
+ }
}
}
-
ranges.put(first,last);
}