summaryrefslogtreecommitdiff
path: root/java/client/src
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
commit9ac692c9ae997f43f32f40a6190a2399653e3d77 (patch)
treef024240e086914bbea795c07e83d6779cc1c6a0d /java/client/src
parent006df01501d1ce3e88422f803e1456ef4712940c (diff)
downloadqpid-python-9ac692c9ae997f43f32f40a6190a2399653e3d77.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/src')
-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()