Repository: activemq-artemis Updated Branches: refs/heads/ARTEMIS-780 054b3b977 -> b704c1ebf
Fix AddressConfigTest Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/b704c1eb Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/b704c1eb Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/b704c1eb Branch: refs/heads/ARTEMIS-780 Commit: b704c1ebfb406ad49c1669a62c7f1e57b43eae6d Parents: 054b3b9 Author: jbertram <[email protected]> Authored: Wed Nov 30 18:56:19 2016 -0600 Committer: jbertram <[email protected]> Committed: Wed Nov 30 18:56:19 2016 -0600 ---------------------------------------------------------------------- .../codec/PersistentAddressBindingEncoding.java | 4 ++++ .../artemis/core/server/impl/ActiveMQServerImpl.java | 15 +++++++-------- .../integration/addressing/AddressConfigTest.java | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b704c1eb/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java index c3aa9de..9684481 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/codec/PersistentAddressBindingEncoding.java @@ -48,6 +48,10 @@ public class PersistentAddressBindingEncoding implements EncodingSupport, Addres for (RoutingType routingType : routingTypes) { sb.append(routingType.toString() + ","); } + if (sb.charAt(sb.length() - 1) == ',') { + sb.deleteCharAt(sb.length() - 1); + } + sb.append("}"); sb.append(", autoCreated=" + autoCreated + "]"); return sb.toString(); } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b704c1eb/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java index cf862c5..7f103e7 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java @@ -2244,16 +2244,16 @@ public class ActiveMQServerImpl implements ActiveMQServer { recoverStoredConfigs(); + Map<Long, AddressBindingInfo> addressBindingInfosMap = new HashMap<>(); + + journalLoader.initAddresses(addressBindingInfosMap, addressBindingInfos); + Map<Long, QueueBindingInfo> queueBindingInfosMap = new HashMap<>(); journalLoader.initQueues(queueBindingInfosMap, queueBindingInfos); journalLoader.handleGroupingBindings(groupingInfos); - Map<Long, AddressBindingInfo> addressBindingInfosMap = new HashMap<>(); - - journalLoader.initAddresses(addressBindingInfosMap, addressBindingInfos); - Map<SimpleString, List<Pair<byte[], Long>>> duplicateIDMap = new HashMap<>(); HashSet<Pair<Long, Long>> pendingLargeMessages = new HashSet<>(); @@ -2403,10 +2403,12 @@ public class ActiveMQServerImpl implements ActiveMQServer { defaultAddressInfo.addRoutingType(routingType == null ? ActiveMQDefaultConfiguration.getDefaultRoutingType() : routingType); AddressInfo info = postOffice.getAddressInfo(addressName); + boolean addressAlreadyExists = true; + if (info == null) { if (autoCreateAddress) { postOffice.addAddressInfo(defaultAddressInfo.setAutoCreated(true)); - info = postOffice.getAddressInfo(addressName); + addressAlreadyExists = false; } else { throw ActiveMQMessageBundle.BUNDLE.addressDoesNotExist(addressName); } @@ -2416,12 +2418,9 @@ public class ActiveMQServerImpl implements ActiveMQServer { final Queue queue = queueFactory.createQueueWith(queueConfig); - boolean addressAlreadyExists = true; - AddressInfo addressInfo = postOffice.getAddressInfo(queue.getAddress()); if (addressInfo == null) { postOffice.addAddressInfo(new AddressInfo(queue.getAddress())); - addressAlreadyExists = false; } else { if (!addressInfo.getRoutingTypes().contains(routingType)) { throw ActiveMQMessageBundle.BUNDLE.invalidRoutingTypeForAddress(routingType, addressInfo.getName().toString(), addressInfo.getRoutingTypes()); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b704c1eb/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java index 4e3f689..0beaab7 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressConfigTest.java @@ -52,6 +52,6 @@ public class AddressConfigTest extends ActiveMQTestBase { Set<RoutingType> routingTypeSet = new HashSet<>(); routingTypeSet.add(RoutingType.MULTICAST); - assertEquals(RoutingType.MULTICAST, addressInfo.getRoutingTypes()); + assertEquals(routingTypeSet, addressInfo.getRoutingTypes()); } }
