diff options
| -rw-r--r-- | qpid/cpp/src/qpid/broker/Broker.cpp | 7 | ||||
| -rw-r--r-- | qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py | 12 |
2 files changed, 11 insertions, 8 deletions
diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp index e02a013cd1..240b9063f8 100644 --- a/qpid/cpp/src/qpid/broker/Broker.cpp +++ b/qpid/cpp/src/qpid/broker/Broker.cpp @@ -889,6 +889,9 @@ void Broker::deleteExchange(const std::string& name, const std::string& userId, throw framing::UnauthorizedAccessException(QPID_MSG("ACL denied exchange delete request from " << userId)); } + if (name.empty()) { + throw framing::InvalidArgumentException(QPID_MSG("Delete not allowed for default exchange")); + } Exchange::shared_ptr exchange(exchanges.get(name)); if (!exchange) throw framing::NotFoundException(QPID_MSG("Delete failed. No such exchange: " << name)); if (exchange->inUseAsAlternate()) throw framing::NotAllowedException(QPID_MSG("Exchange in use as alternate-exchange.")); @@ -917,7 +920,7 @@ void Broker::bind(const std::string& queueName, throw framing::UnauthorizedAccessException(QPID_MSG("ACL denied exchange bind request from " << userId)); } if (exchangeName.empty()) { - throw framing::NotAllowedException(QPID_MSG("Bind not allowed for default exchange")); + throw framing::InvalidArgumentException(QPID_MSG("Bind not allowed for default exchange")); } Queue::shared_ptr queue = queues.find(queueName); @@ -950,7 +953,7 @@ void Broker::unbind(const std::string& queueName, throw framing::UnauthorizedAccessException(QPID_MSG("ACL denied exchange unbind request from " << userId)); } if (exchangeName.empty()) { - throw framing::NotAllowedException(QPID_MSG("Unbind not allowed for default exchange")); + throw framing::InvalidArgumentException(QPID_MSG("Unbind not allowed for default exchange")); } Queue::shared_ptr queue = queues.find(queueName); Exchange::shared_ptr exchange = exchanges.get(exchangeName); diff --git a/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py b/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py index a0f0684bc8..db52b36754 100644 --- a/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py +++ b/qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py @@ -463,24 +463,24 @@ class MiscellaneousErrorsTests(TestHelper): try: self.session.queue_declare(queue="my-queue", auto_delete=True, exclusive=True) self.session.exchange_bind(exchange="", queue="my-queue", binding_key="another-key") - self.fail("Expected 530 (not-allowed) code for bind to default exchange.") + self.fail("Expected 542 (invalid-argument) code for bind to default exchange.") except SessionException, e: - self.assertEquals(530, e.args[0].error_code) + self.assertEquals(542, e.args[0].error_code) def testDefaultAccessUnbind(self): try: self.session.queue_declare(queue="my-queue", auto_delete=True, exclusive=True) self.session.exchange_unbind(exchange="", queue="my-queue", binding_key="my-queue") - self.fail("Expected 530 (not-allowed) code for unbind from default exchange.") + self.fail("Expected 542 (invalid-argument) code for unbind from default exchange.") except SessionException, e: - self.assertEquals(530, e.args[0].error_code) + self.assertEquals(542, e.args[0].error_code) def testDefaultAccessDelete(self): try: self.session.exchange_delete(exchange="") - self.fail("Expected 530 (not-allowed) code for delete of default exchange.") + self.fail("Expected 542 (invalid-argument) code for delete of default exchange.") except SessionException, e: - self.assertEquals(530, e.args[0].error_code) + self.assertEquals(542, e.args[0].error_code) class ExchangeTests(TestHelper): def testHeadersBindNoMatchArg(self): |
