From f87fbe5b1f0441c1066be6db0836097eda48b02c 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@1552669 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/broker/amqp/Topic.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'qpid/cpp') diff --git a/qpid/cpp/src/qpid/broker/amqp/Topic.cpp b/qpid/cpp/src/qpid/broker/amqp/Topic.cpp index 4e3de21c74..02a6f30104 100644 --- a/qpid/cpp/src/qpid/broker/amqp/Topic.cpp +++ b/qpid/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