summaryrefslogtreecommitdiff
path: root/qpid
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-12-20 13:48:44 +0000
committerGordon Sim <gsim@apache.org>2013-12-20 13:48:44 +0000
commitf87fbe5b1f0441c1066be6db0836097eda48b02c (patch)
tree75a5218493dca841279983345ee4abfecb617bc2 /qpid
parent3d3057235cb58c78aa35c985e7d13bce163a4ae8 (diff)
downloadqpid-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.cpp8
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);
}
}