summaryrefslogtreecommitdiff
path: root/java/client
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2012-01-31 16:41:48 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2012-01-31 16:41:48 +0000
commitc5901c4870cddd33c47b2fb20922fa121c97801b (patch)
treef024240e086914bbea795c07e83d6779cc1c6a0d /java/client
parentcc929b8fddebe197a7a3b5cee57f87d5779d2c1f (diff)
downloadqpid-python-c5901c4870cddd33c47b2fb20922fa121c97801b.tar.gz
QPID-3604 Moved the draining of consumer queues further down to be done
after we drain the dispatch queue. Since the message flow is now stopped we can drain the queues without grabbing the message-delivery-lock. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1238688 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java14
1 files changed, 6 insertions, 8 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
index cfd5776c0a..d38f4bbb2f 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
@@ -1366,18 +1366,16 @@ public class AMQSession_0_10 extends AMQSession<BasicMessageConsumer_0_10, Basic
void stop() throws AMQException
{
super.stop();
- synchronized (getMessageDeliveryLock())
- {
- for (BasicMessageConsumer consumer : getConsumers().values())
- {
- List<Long> tags = consumer.drainReceiverQueueAndRetrieveDeliveryTags();
- getPrefetchedMessageTags().addAll(tags);
- }
- }
setUsingDispatcherForCleanup(true);
drainDispatchQueue();
setUsingDispatcherForCleanup(false);
+ for (BasicMessageConsumer consumer : getConsumers().values())
+ {
+ List<Long> tags = consumer.drainReceiverQueueAndRetrieveDeliveryTags();
+ getPrefetchedMessageTags().addAll(tags);
+ }
+
RangeSet delivered = gatherRangeSet(getUnacknowledgedMessageTags());
RangeSet prefetched = gatherRangeSet(getPrefetchedMessageTags());
RangeSet all = RangeSetFactory.createRangeSet(delivered.size()