summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java5
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_0_8/basic.py2
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):