summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/QueueRegistry.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2011-02-25 20:52:17 +0000
committerGordon Sim <gsim@apache.org>2011-02-25 20:52:17 +0000
commiteacb3585cb4602f9a14b1581b97faaecaa57270b (patch)
tree03ed5d62a620124c9f854694ac4eabd12b797fdb /cpp/src/qpid/broker/QueueRegistry.cpp
parent9f1543d897722250a8986148cc267614ea21a691 (diff)
downloadqpid-python-eacb3585cb4602f9a14b1581b97faaecaa57270b.tar.gz
QPID-3087: fail rather than ignoring attempts to declare queues with bad arguments; ensure qpid-config can deal with different types of argument.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1074697 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/QueueRegistry.cpp')
-rw-r--r--cpp/src/qpid/broker/QueueRegistry.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/QueueRegistry.cpp b/cpp/src/qpid/broker/QueueRegistry.cpp
index ea2531dae7..cdd1d87e63 100644
--- a/cpp/src/qpid/broker/QueueRegistry.cpp
+++ b/cpp/src/qpid/broker/QueueRegistry.cpp
@@ -36,7 +36,8 @@ QueueRegistry::~QueueRegistry(){}
std::pair<Queue::shared_ptr, bool>
QueueRegistry::declare(const string& declareName, bool durable,
- bool autoDelete, const OwnershipToken* owner)
+ bool autoDelete, const OwnershipToken* owner,
+ const framing::FieldTable& arguments)
{
RWlock::ScopedWlock locker(lock);
string name = declareName.empty() ? generateName() : declareName;
@@ -45,6 +46,8 @@ QueueRegistry::declare(const string& declareName, bool durable,
if (i == queues.end()) {
Queue::shared_ptr queue(new Queue(name, autoDelete, durable ? store : 0, owner, parent, broker));
+ //apply settings & create persistent record if required
+ queue->create(arguments);
queues[name] = queue;
if (lastNode) queue->setLastNodeFailure();