diff options
| author | Gordon Sim <gsim@apache.org> | 2013-12-20 13:48:44 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2013-12-20 13:48:44 +0000 |
| commit | f87fbe5b1f0441c1066be6db0836097eda48b02c (patch) | |
| tree | 75a5218493dca841279983345ee4abfecb617bc2 /qpid | |
| parent | 3d3057235cb58c78aa35c985e7d13bce163a4ae8 (diff) | |
| download | qpid-python-f87fbe5b1f0441c1066be6db0836097eda48b02c.tar.gz | |
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
Diffstat (limited to 'qpid')
| -rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/Topic.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
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<Exchange> 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); } } |
