summaryrefslogtreecommitdiff
path: root/cpp/src
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
commitd4e584e5eccec83d3fd7bab55cf2e163967c852a (patch)
treea7fd10a45f98726d3d8f27e550dffb0341f4c752 /cpp/src
parent03376b220a25865653cbb59280a28213233a07f2 (diff)
downloadqpid-python-d4e584e5eccec83d3fd7bab55cf2e163967c852a.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/qpid@1552669 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/broker/amqp/Topic.cpp8
1 files changed, 4 insertions, 4 deletions
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<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);
}
}