From e9f5602cdf5b100a348a2f95c620805ffab803b9 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Thu, 20 Feb 2014 15:42:00 +0000 Subject: 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 --- .../amqp_1_0/transport/ReceivingLinkEndpoint.java | 36 ++++++++++++---------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'qpid/java') 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 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); } -- cgit v1.2.1