diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-02-18 09:32:09 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-02-18 09:32:09 +0000 |
| commit | a255b0dc43174973ea5376227ab8f2332228eb8e (patch) | |
| tree | 826827f3a984fc7b5020cf2a12e11268477b8561 | |
| parent | 37e2f371b04760bf0b9641e3969b070dda38d451 (diff) | |
| download | qpid-python-a255b0dc43174973ea5376227ab8f2332228eb8e.tar.gz | |
QPID-5555 : Fix queue exclusivity issues
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1569245 13f79535-47bb-0310-9956-ffa450edef68
| -rw-r--r-- | qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java | 5 | ||||
| -rw-r--r-- | qpid/tests/src/py/qpid_tests/broker_0_8/basic.py | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java index e7e45db58b..0135b11fb9 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java @@ -670,6 +670,11 @@ abstract class SimpleAMQQueue<E extends QueueEntryImpl<E,Q,L>, Q extends SimpleA boolean exclusive = optionSet.contains(Consumer.Option.EXCLUSIVE); boolean isTransient = optionSet.contains(Consumer.Option.TRANSIENT); + if(exclusive && getConsumerCount() != 0) + { + throw new ExistingConsumerPreventsExclusive(); + } + QueueConsumer<T,E,Q,L> consumer = new QueueConsumer<T,E,Q,L>(filters, messageClass, optionSet.contains(Consumer.Option.ACQUIRES), optionSet.contains(Consumer.Option.SEES_REQUEUES), diff --git a/qpid/tests/src/py/qpid_tests/broker_0_8/basic.py b/qpid/tests/src/py/qpid_tests/broker_0_8/basic.py index 606aad1293..13f4252ffb 100644 --- a/qpid/tests/src/py/qpid_tests/broker_0_8/basic.py +++ b/qpid/tests/src/py/qpid_tests/broker_0_8/basic.py @@ -117,7 +117,7 @@ class BasicTests(TestBase): self.assertEqual(test_message, msg.content.body) consumerchannel.basic_ack(delivery_tag=msg.delivery_tag) finally: - publisherchannel.queue_delete(queue=queue_for_subscription) + consumerchannel.queue_delete(queue=queue_for_subscription) durable_subscription_client.close() def _declare_and_bind_exclusive_queue_on_topic_exchange(self, channel, queue, topic_name): |
