summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2011-08-23 10:32:25 +0000
committerGordon Sim <gsim@apache.org>2011-08-23 10:32:25 +0000
commit44389ae6cdf684920755ff6a7df6d9db4f3fe3ea (patch)
treea3ef07382ef471a8e3e3d094d504a6f7bc6df12d
parentd44a0e0d2535e6dbc02f123cbae1b0b9749982bd (diff)
downloadqpid-python-44389ae6cdf684920755ff6a7df6d9db4f3fe3ea.tar.gz
QPID-3363, QPID-3443: Corrected exception used for 'default access' rule violations to match that specified for 'exchange-name-required'
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1160607 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/broker/Broker.cpp7
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_0_10/exchange.py12
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):