You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2019/01/29 15:54:18 UTC

[activemq-artemis] branch master updated: ARTEMIS-2242 Reverting regression caused by ARTEMIS-2229

This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/master by this push:
     new f4436a9  ARTEMIS-2242 Reverting regression caused by ARTEMIS-2229
f4436a9 is described below

commit f4436a9f72afeb8117ecd6e377df8198eeec9aa3
Author: Clebert Suconic <cl...@apache.org>
AuthorDate: Tue Jan 29 10:50:41 2019 -0500

    ARTEMIS-2242 Reverting regression caused by ARTEMIS-2229
    
    Revert "ARTEMIS-2229 Qpid jms consumer cannot receive from multicast queue using FQQN"
    
    This reverts commit 882da19c8a9a2ad12ca089d45445fe408d850330.
---
 .../protocol/amqp/broker/AMQPSessionCallback.java  |  7 ++---
 .../amqp/proton/ProtonServerSenderContext.java     | 10 ++-----
 .../amqp/AmqpFullyQualifiedNameTest.java           | 34 ----------------------
 3 files changed, 4 insertions(+), 47 deletions(-)

diff --git a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java
index f850cc1..63f5521 100644
--- a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java
+++ b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java
@@ -289,11 +289,8 @@ public class AMQPSessionCallback implements SessionCallback {
       }
 
       // if auto-create we will return whatever type was used before
-      if (queueQueryResult.isExists() && !queueQueryResult.isAutoCreated()) {
-         //if routingType is null we bypass the check
-         if (routingType != null && queueQueryResult.getRoutingType() != routingType) {
-            throw new IllegalStateException("Incorrect Routing Type for queue, expecting: " + routingType);
-         }
+      if (queueQueryResult.isExists() && !queueQueryResult.isAutoCreated() && queueQueryResult.getRoutingType() != routingType) {
+         throw new IllegalStateException("Incorrect Routing Type for queue, expecting: " + routingType);
       }
 
       return queueQueryResult;
diff --git a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java
index 580c4ce..60d5a5a 100644
--- a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java
+++ b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonServerSenderContext.java
@@ -347,10 +347,7 @@ public class ProtonServerSenderContext extends ProtonInitializable implements Pr
             if (multicast && !routingTypes.contains(RoutingType.MULTICAST)) {
                throw new ActiveMQAMQPIllegalStateException("Address " + addressToUse + " is not configured for topic support");
             } else if (!multicast && !routingTypes.contains(RoutingType.ANYCAST)) {
-               //if client specifies fully qualified name that's allowed, don't throw exception.
-               if (queueNameToUse == null) {
-                  throw new ActiveMQAMQPIllegalStateException("Address " + addressToUse + " is not configured for queue support");
-               }
+               throw new ActiveMQAMQPIllegalStateException("Address " + addressToUse + " is not configured for queue support");
             }
          } else {
             // if not we look up the address
@@ -448,10 +445,7 @@ public class ProtonServerSenderContext extends ProtonInitializable implements Pr
             }
          } else {
             if (queueNameToUse != null) {
-               //a queue consumer can receive from a multicast queue if it uses a fully qualified name
-               //setting routingType to null means do not check the routingType against the Queue's routing type.
-               routingTypeToUse = null;
-               SimpleString matchingAnycastQueue = getMatchingQueue(queueNameToUse, addressToUse, null);
+               SimpleString matchingAnycastQueue = getMatchingQueue(queueNameToUse, addressToUse, RoutingType.ANYCAST);
                if (matchingAnycastQueue != null) {
                   queue = matchingAnycastQueue;
                } else {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java
index ba9ff23..b9adc59 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpFullyQualifiedNameTest.java
@@ -200,40 +200,6 @@ public class AmqpFullyQualifiedNameTest extends JMSClientTestSupport {
    }
 
    @Test
-   public void testQueueConsumerReceiveTopicUsingFQQN() throws Exception {
-
-      SimpleString queueName1 = new SimpleString("sub.queue1");
-      SimpleString queueName2 = new SimpleString("sub.queue2");
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, queueName1, null, false, false);
-      server.createQueue(multicastAddress, RoutingType.MULTICAST, queueName2, null, false, false);
-      Connection connection = createConnection(false);
-
-      try {
-         connection.start();
-         Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-         javax.jms.Queue fqqn1 = session.createQueue(multicastAddress.toString() + "::" + queueName1);
-         javax.jms.Queue fqqn2 = session.createQueue(multicastAddress.toString() + "::" + queueName2);
-
-         MessageConsumer consumer1 = session.createConsumer(fqqn1);
-         MessageConsumer consumer2 = session.createConsumer(fqqn2);
-
-         Topic topic = session.createTopic(multicastAddress.toString());
-         MessageProducer producer = session.createProducer(topic);
-
-         producer.send(session.createMessage());
-
-         Message m = consumer1.receive(2000);
-         assertNotNull(m);
-
-         m = consumer2.receive(2000);
-         assertNotNull(m);
-
-      } finally {
-         connection.close();
-      }
-   }
-
-   @Test
    public void testQueue() throws Exception {
       server.getAddressSettingsRepository().addMatch("#", new AddressSettings().setAutoCreateQueues(true).setAutoCreateAddresses(true));