summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/broker/amqp/Topic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/broker/amqp/Topic.cpp')
-rw-r--r--qpid/cpp/src/qpid/broker/amqp/Topic.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/broker/amqp/Topic.cpp b/qpid/cpp/src/qpid/broker/amqp/Topic.cpp
index ec0fc617b6..93f4b83f08 100644
--- a/qpid/cpp/src/qpid/broker/amqp/Topic.cpp
+++ b/qpid/cpp/src/qpid/broker/amqp/Topic.cpp
@@ -63,6 +63,7 @@ Topic::Topic(Broker& broker, const std::string& n, boost::shared_ptr<Exchange> e
alternateExchange(getProperty(ALTERNATE_EXCHANGE, properties))
{
if (exchange->getName().empty()) throw qpid::Exception("Exchange must be specified.");
+ if (durable && !exchange->isDurable()) throw qpid::Exception("Durable topic must be backed by durable exchange");
qpid::types::Variant::Map unused;
qpid::types::Variant::Map filtered = filter(properties, true);