You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ma...@apache.org on 2018/10/23 14:52:08 UTC

activemq-artemis git commit: ARTEMIS-2139 Ensure 1.x Client reply to address is correct

Repository: activemq-artemis
Updated Branches:
  refs/heads/2.6.x 292566e39 -> cad1e9a63


ARTEMIS-2139 Ensure 1.x Client reply to address is correct


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/cad1e9a6
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/cad1e9a6
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/cad1e9a6

Branch: refs/heads/2.6.x
Commit: cad1e9a630ddfb4647d7ee59c83195d98fbf1d30
Parents: 292566e
Author: Martyn Taylor <mt...@redhat.com>
Authored: Fri Oct 19 12:07:44 2018 +0100
Committer: Martyn Taylor <mt...@redhat.com>
Committed: Tue Oct 23 15:51:24 2018 +0100

----------------------------------------------------------------------
 .../artemis/jms/client/ActiveMQDestination.java | 37 ++++++--------------
 .../artemis/jms/client/ActiveMQMessage.java     | 30 +++++++++-------
 2 files changed, 29 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cad1e9a6/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
index 6d1b409..a349e3e 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQDestination.java
@@ -91,39 +91,24 @@ public class ActiveMQDestination extends JNDIStorable implements Destination, Se
       return fromPrefixedName(name, name);
    }
 
-   public static Destination fromPrefixedName(final String addr, final String name) {
+   public static Destination fromPrefixedName(final String addr, String name) {
 
       ActiveMQDestination destination;
-      if (addr.startsWith(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX)) {
-         String address = addr.substring(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX.length());
-         destination = createQueue(address);
-      } else if (addr.startsWith(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX)) {
-         String address = addr.substring(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX.length());
-         destination = createTopic(address);
-      } else if (addr.startsWith(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX)) {
-         String address = addr.substring(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX.length());
-         destination = new ActiveMQTemporaryQueue(address, null);
-      } else if (addr.startsWith(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX)) {
-         String address = addr.substring(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX.length());
-         destination = new ActiveMQTemporaryTopic(address, null);
-      } else {
-         destination = new ActiveMQDestination(addr, TYPE.DESTINATION, null);
-      }
-
-      String unprefixedName = name;
-
       if (name.startsWith(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX)) {
-         unprefixedName = name.substring(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX.length());
+         name = name.substring(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX.length());
+         destination = createQueue(addr, name);
       } else if (name.startsWith(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX)) {
-         unprefixedName = name.substring(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX.length());
+         name = name.substring(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX.length());
+         destination = createTopic(addr, name);
       } else if (name.startsWith(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX)) {
-         unprefixedName = name.substring(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX.length());
+         name = name.substring(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX.length());
+         destination = new ActiveMQTemporaryQueue(addr, null);
       } else if (name.startsWith(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX)) {
-         unprefixedName = name.substring(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX.length());
+         name = name.substring(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX.length());
+         destination = new ActiveMQTemporaryTopic(addr, null);
+      } else {
+         destination = new ActiveMQDestination(addr, TYPE.DESTINATION, null);
       }
-
-      destination.setName(unprefixedName);
-
       return destination;
    }
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cad1e9a6/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
index ff7da00..bd0f7eb 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessage.java
@@ -46,8 +46,10 @@ import org.apache.activemq.artemis.api.jms.ActiveMQJMSConstants;
 import org.apache.activemq.artemis.core.client.ActiveMQClientMessageBundle;
 import org.apache.activemq.artemis.core.client.impl.ClientMessageInternal;
 import org.apache.activemq.artemis.api.core.RoutingType;
+import org.apache.activemq.artemis.core.protocol.core.Packet;
 import org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl;
 import org.apache.activemq.artemis.reader.MessageUtil;
+import org.apache.activemq.artemis.utils.PrefixUtil;
 import org.apache.activemq.artemis.utils.UUID;
 
 import static org.apache.activemq.artemis.jms.client.ActiveMQDestination.QUEUE_QUALIFIED_PREFIX;
@@ -66,10 +68,8 @@ public class ActiveMQMessage implements javax.jms.Message {
    // Constants -----------------------------------------------------
    public static final byte TYPE = org.apache.activemq.artemis.api.core.Message.DEFAULT_TYPE;
 
-   public static final SimpleString OLD_QUEUE_QUALIFIED_PREFIX = SimpleString.toSimpleString(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX + PacketImpl.OLD_QUEUE_PREFIX);
-   public static final SimpleString OLD_TEMP_QUEUE_QUALIFED_PREFIX = SimpleString.toSimpleString(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX + PacketImpl.OLD_TEMP_QUEUE_PREFIX);
-   public static final SimpleString OLD_TOPIC_QUALIFIED_PREFIX = SimpleString.toSimpleString(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX + PacketImpl.OLD_TOPIC_PREFIX);
-   public static final SimpleString OLD_TEMP_TOPIC_QUALIFED_PREFIX = SimpleString.toSimpleString(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX + PacketImpl.OLD_TEMP_TOPIC_PREFIX);
+   public static final String QUEUE_PREFIX = PacketImpl.OLD_QUEUE_PREFIX.toString();
+   public static final String TOPIC_PREFIX = PacketImpl.OLD_TOPIC_PREFIX.toString();
 
    public static Map<String, Object> coreMaptoJMSMap(final Map<String, Object> coreMessage) {
       Map<String, Object> jmsMessage = new HashMap<>();
@@ -372,14 +372,20 @@ public class ActiveMQMessage implements javax.jms.Message {
 
             // swap the old prefixes for the new ones so the proper destination type gets created
             if (enable1xPrefixes) {
-               if (address.startsWith(OLD_QUEUE_QUALIFIED_PREFIX)) {
-                  name = address.subSeq(OLD_QUEUE_QUALIFIED_PREFIX.length(), address.length()).toString();
-               } else if (address.startsWith(OLD_TEMP_QUEUE_QUALIFED_PREFIX)) {
-                  name = address.subSeq(OLD_TEMP_QUEUE_QUALIFED_PREFIX.length(), address.length()).toString();
-               } else if (address.startsWith(OLD_TOPIC_QUALIFIED_PREFIX)) {
-                  name = address.subSeq(OLD_TOPIC_QUALIFIED_PREFIX.length(), address.length()).toString();
-               } else if (address.startsWith(OLD_TEMP_TOPIC_QUALIFED_PREFIX)) {
-                  name = address.subSeq(OLD_TEMP_TOPIC_QUALIFED_PREFIX.length(), address.length()).toString();
+               if (name.startsWith(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX)) {
+                  name = name.substring(ActiveMQDestination.QUEUE_QUALIFIED_PREFIX.length());
+               } else if (name.startsWith(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX)) {
+                  name = name.substring(ActiveMQDestination.TOPIC_QUALIFIED_PREFIX.length());
+               } else if (name.startsWith(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX)) {
+                  name = name.substring(ActiveMQDestination.TEMP_QUEUE_QUALIFED_PREFIX.length());
+               } else if (name.startsWith(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX)) {
+                  name = name.substring(ActiveMQDestination.TEMP_TOPIC_QUALIFED_PREFIX.length());
+               }
+
+               if (name.startsWith(QUEUE_PREFIX)) {
+                  name = ActiveMQDestination.QUEUE_QUALIFIED_PREFIX + name.substring(QUEUE_PREFIX.length());
+               } else if (name.startsWith(TOPIC_PREFIX)) {
+                  name = ActiveMQDestination.TOPIC_QUALIFIED_PREFIX + name.substring(TOPIC_PREFIX.length());
                }
             }
             replyTo = ActiveMQDestination.fromPrefixedName(address.toString(), name);