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 <clebertsuco...@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));