summaryrefslogtreecommitdiff
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
commitccc58115dbb83eb6605b1b36a7363fa38c1713f1 (patch)
treee28add0ce376083f55f24be66288400802ac93fa
parent76b0cc37d272c6b50c5fc055fbcbaf8c1dc31400 (diff)
downloadqpid-python-ccc58115dbb83eb6605b1b36a7363fa38c1713f1.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@1238688 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java14
1 files changed, 6 insertions, 8 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
index cfd5776c0a..d38f4bbb2f 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
+++ b/qpid/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()