From ef7c0ddc3e36df411c6a97446e79ba5ae9e9e1c2 Mon Sep 17 00:00:00 2001 From: Michael Andre Pearce Date: Tue, 1 Aug 2017 08:39:34 +0100 Subject: [PATCH] ARTEMIS-1313 getAddresses in PostOfficeImpl does not correctly return all addresses Fix so that getAddresses uses addressInfoMap instead of the mappings so that addresses without queues also are returned --- .../artemis/core/postoffice/impl/SimpleAddressManager.java | 2 +- .../activemq/artemis/tests/integration/jms/RedeployTest.java | 2 ++ .../src/test/resources/reload-address-queues.xml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/SimpleAddressManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/SimpleAddressManager.java index 347ac15c2c3..5a8164fb7d2 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/SimpleAddressManager.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/SimpleAddressManager.java @@ -169,7 +169,7 @@ public void clear() { @Override public Set getAddresses() { Set addresses = new HashSet<>(); - addresses.addAll(mappings.keySet()); + addresses.addAll(addressInfoMap.keySet()); return addresses; } diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java index 42602870a7f..da50ac2f633 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java @@ -136,6 +136,7 @@ public void run() { try { latch.await(10, TimeUnit.SECONDS); + Assert.assertNotNull(getAddressInfo(embeddedJMS, "config_test_address_removal_no_queue")); Assert.assertNotNull(getAddressInfo(embeddedJMS, "config_test_address_removal")); Assert.assertNotNull(getAddressInfo(embeddedJMS, "config_test_queue_removal")); Assert.assertTrue(listQueuesNamesForAddress(embeddedJMS, "config_test_queue_removal").contains("config_test_queue_removal_queue_1")); @@ -153,6 +154,7 @@ public void run() { embeddedJMS.getActiveMQServer().getReloadManager().setTick(tick); latch.await(10, TimeUnit.SECONDS); + Assert.assertNull(getAddressInfo(embeddedJMS, "config_test_address_removal_no_queue")); Assert.assertNull(getAddressInfo(embeddedJMS, "config_test_address_removal")); Assert.assertNotNull(getAddressInfo(embeddedJMS, "config_test_queue_removal")); Assert.assertTrue(listQueuesNamesForAddress(embeddedJMS, "config_test_queue_removal").contains("config_test_queue_removal_queue_1")); diff --git a/tests/integration-tests/src/test/resources/reload-address-queues.xml b/tests/integration-tests/src/test/resources/reload-address-queues.xml index e9b42bec6dd..8fd2e9ed80c 100644 --- a/tests/integration-tests/src/test/resources/reload-address-queues.xml +++ b/tests/integration-tests/src/test/resources/reload-address-queues.xml @@ -127,6 +127,10 @@ under the License. +
+ + +