diff options
-rw-r--r-- | java/client/src/main/java/org/apache/qpid/client/AMQTopic.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java b/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java index 98509c1b99..eb432d3318 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQTopic.java @@ -106,8 +106,20 @@ public class AMQTopic extends AMQDestination implements Topic public static AMQTopic createDurable010Topic(AMQTopic topic, String subscriptionName, AMQConnection connection) throws JMSException { - return new AMQTopic(topic.getExchangeName(), ExchangeDefaults.TOPIC_EXCHANGE_CLASS, topic.getRoutingKey(), true, false, + if (topic.getDestSyntax() == AMQDestination.DestSyntax.BURL) + { + return new AMQTopic(topic.getExchangeName(), ExchangeDefaults.TOPIC_EXCHANGE_CLASS, topic.getRoutingKey(), true, false, getDurableTopicQueueName(subscriptionName, connection), true); + } + else + { + return new AMQTopic(new AMQShortString(topic.getAddressName()), + ExchangeDefaults.TOPIC_EXCHANGE_CLASS, + new AMQShortString(topic.getSubject()), + true, + false, + getDurableTopicQueueName(subscriptionName, connection), true); + } } public static AMQShortString getDurableTopicQueueName(String subscriptionName, AMQConnection connection) throws JMSException |