From d4e584e5eccec83d3fd7bab55cf2e163967c852a Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Fri, 20 Dec 2013 13:48:44 +0000 Subject: QPID-5440: don't remove alternate-exchange from topic's management properties (just from queue arguments) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1552669 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/amqp/Topic.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'cpp/src') diff --git a/cpp/src/qpid/broker/amqp/Topic.cpp b/cpp/src/qpid/broker/amqp/Topic.cpp index 4e3de21c74..02a6f30104 100644 --- a/cpp/src/qpid/broker/amqp/Topic.cpp +++ b/cpp/src/qpid/broker/amqp/Topic.cpp @@ -48,12 +48,12 @@ bool testProperty(const std::string& k, const qpid::types::Variant::Map& m) else return i->second; } -qpid::types::Variant::Map filter(const qpid::types::Variant::Map& properties) +qpid::types::Variant::Map filter(const qpid::types::Variant::Map& properties, bool queue) { qpid::types::Variant::Map filtered = properties; filtered.erase(DURABLE); filtered.erase(EXCHANGE); - filtered.erase(ALTERNATE_EXCHANGE); + if (queue) filtered.erase(ALTERNATE_EXCHANGE); return filtered; } } @@ -65,13 +65,13 @@ Topic::Topic(Broker& broker, const std::string& n, boost::shared_ptr e if (exchange->getName().empty()) throw qpid::Exception("Exchange must be specified."); qpid::types::Variant::Map unused; - qpid::types::Variant::Map filtered = filter(properties); + qpid::types::Variant::Map filtered = filter(properties, true); policy.populate(filtered, unused); qpid::management::ManagementAgent* agent = broker.getManagementAgent(); if (agent != 0) { topic = _qmf::Topic::shared_ptr(new _qmf::Topic(agent, this, name, exchange->GetManagementObject()->getObjectId(), durable)); - topic->set_properties(filtered); + topic->set_properties(filter(properties, false)); agent->addObject(topic); } } -- cgit v1.2.1