Fix NPE with QueueQueryV3 plus a couple other things
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/6ae97b22 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/6ae97b22 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/6ae97b22 Branch: refs/heads/ARTEMIS-780 Commit: 6ae97b22fff26c1eaa6a192529d0ab34125db73f Parents: 762e4f1 Author: jbertram <[email protected]> Authored: Tue Nov 29 23:57:05 2016 -0600 Committer: jbertram <[email protected]> Committed: Wed Nov 30 00:05:27 2016 -0600 ---------------------------------------------------------------------- .../core/protocol/core/impl/ActiveMQSessionContext.java | 3 +-- .../activemq/artemis/core/server/impl/ActiveMQServerImpl.java | 6 +++--- .../apache/activemq/artemis/core/server/impl/AddressInfo.java | 4 +++- 3 files changed, 7 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6ae97b22/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ActiveMQSessionContext.java ---------------------------------------------------------------------- diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ActiveMQSessionContext.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ActiveMQSessionContext.java index 1a52e9b..5707645 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ActiveMQSessionContext.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/ActiveMQSessionContext.java @@ -79,7 +79,6 @@ import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionInd import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionProducerCreditsFailMessage; import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionProducerCreditsMessage; import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionQueueQueryMessage; -import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionQueueQueryResponseMessage_V2; import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionQueueQueryResponseMessage_V3; import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionReceiveContinuationMessage; import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionReceiveLargeMessage; @@ -266,7 +265,7 @@ public class ActiveMQSessionContext extends SessionContext { @Override public ClientSession.QueueQuery queueQuery(final SimpleString queueName) throws ActiveMQException { SessionQueueQueryMessage request = new SessionQueueQueryMessage(queueName); - SessionQueueQueryResponseMessage_V2 response = (SessionQueueQueryResponseMessage_V2) sessionChannel.sendBlocking(request, PacketImpl.SESS_QUEUEQUERY_RESP_V2); + SessionQueueQueryResponseMessage_V3 response = (SessionQueueQueryResponseMessage_V3) sessionChannel.sendBlocking(request, PacketImpl.SESS_QUEUEQUERY_RESP_V3); return response.toQueueQuery(); } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6ae97b22/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 2147868..cf862c5 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 @@ -671,9 +671,9 @@ public class ActiveMQServerImpl implements ActiveMQServer { // make an exception for the management address (see HORNETQ-29) response = new QueueQueryResult(name, managementAddress, true, false, null, -1, -1, autoCreateQueues, true, false, false, RoutingType.MULTICAST, -1); } else if (autoCreateQueues) { - response = new QueueQueryResult(name, name, true, false, null, 0, 0, true, false, false, false, null, 0); + response = new QueueQueryResult(name, name, true, false, null, 0, 0, true, false, false, false, RoutingType.MULTICAST, 0); } else { - response = new QueueQueryResult(null, null, false, false, null, 0, 0, false, false, false, false, null, 0); + response = new QueueQueryResult(null, null, false, false, null, 0, 0, false, false, false, false, RoutingType.MULTICAST, 0); } return response; @@ -2405,7 +2405,7 @@ public class ActiveMQServerImpl implements ActiveMQServer { if (info == null) { if (autoCreateAddress) { - postOffice.addAddressInfo(defaultAddressInfo); + postOffice.addAddressInfo(defaultAddressInfo.setAutoCreated(true)); info = postOffice.getAddressInfo(addressName); } else { throw ActiveMQMessageBundle.BUNDLE.addressDoesNotExist(addressName); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6ae97b22/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/AddressInfo.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/AddressInfo.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/AddressInfo.java index d05628c..6384ae9 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/AddressInfo.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/AddressInfo.java @@ -120,7 +120,9 @@ public class AddressInfo { buff.append(routingType.toString() + ","); } // delete hanging comma - buff.deleteCharAt(buff.length() - 1); + if (buff.charAt(buff.length() - 1) == ',') { + buff.deleteCharAt(buff.length() - 1); + } buff.append("}"); buff.append(", autoCreated=" + autoCreated); buff.append("]");
