From 2af7b3bdcb285b4d95e68d370063feb69ca8f4bc Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Fri, 19 Jan 2018 16:01:51 +0100 Subject: [PATCH] [ARTEMIS-1609] Add distinct name/address for JMS destinations Fix internalCreateTopic method: the topics are keyed by their core addresses, not their JMS names. --- .../artemis/jms/server/impl/JMSServerManagerImpl.java | 2 +- .../integration/jms/server/JMSServerDeployerTest.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/impl/JMSServerManagerImpl.java b/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/impl/JMSServerManagerImpl.java index 15c58968ca..420b22b0f3 100644 --- a/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/impl/JMSServerManagerImpl.java +++ b/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/impl/JMSServerManagerImpl.java @@ -1133,7 +1133,7 @@ public class JMSServerManagerImpl implements JMSServerManager, ActivateCallback ActiveMQTopic activeMQTopic = ActiveMQDestination.createTopic(address, topicName); server.addOrUpdateAddressInfo(new AddressInfo(SimpleString.toSimpleString(activeMQTopic.getAddress()), RoutingType.MULTICAST)); - topics.put(topicName, activeMQTopic); + topics.put(address, activeMQTopic); this.recoverregistryBindings(topicName, PersistedType.Topic); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/JMSServerDeployerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/JMSServerDeployerTest.java index 4f73910d8d..f840c51467 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/JMSServerDeployerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/JMSServerDeployerTest.java @@ -79,6 +79,8 @@ public class JMSServerDeployerTest extends ActiveMQTestBase { doTestDeployTopicsWithUnusualNames("topic\\with\\backslashes\\in\\name", "/mytopic4"); doTestDeployTopicsWithUnusualNames("topic with # chars and * chars in name", "/mytopic5"); + + doTestDeployTopicsWithUnusualNames("jms.topic.myTopic", "/mytopic6", "myTopic"); } private void doTestDeployQueuesWithUnusualNames(final String queueName, final String jndiName) throws Exception { @@ -97,6 +99,14 @@ public class JMSServerDeployerTest extends ActiveMQTestBase { Assert.assertEquals(topicName, topic.getTopicName()); } + private void doTestDeployTopicsWithUnusualNames(final String topicName, final String jndiName, final String jmsTopicName) throws Exception { + jmsServer.createTopic(topicName, false, jmsTopicName, jndiName); + + Topic topic = (Topic) context.lookup(jndiName); + Assert.assertNotNull(topic); + Assert.assertEquals(jmsTopicName, topic.getTopicName()); + } + // Package protected --------------------------------------------- // Protected -----------------------------------------------------