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 2018/11/14 15:49:22 UTC
[1/2] activemq-artemis git commit: ARTEMIS-2140 queue creation race
w/AMQP shared subs
Repository: activemq-artemis
Updated Branches:
refs/heads/master 29062935a -> 9d680cc0b
ARTEMIS-2140 queue creation race w/AMQP shared subs
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/e81453e6
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/e81453e6
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/e81453e6
Branch: refs/heads/master
Commit: e81453e6608ce70436576f1ed54b1f62d30ddc2e
Parents: 2906293
Author: Justin Bertram <jb...@apache.org>
Authored: Fri Nov 9 11:38:28 2018 -0600
Committer: Clebert Suconic <cl...@apache.org>
Committed: Wed Nov 14 10:49:15 2018 -0500
----------------------------------------------------------------------
.../amqp/broker/AMQPSessionCallback.java | 2 ++
.../amqp/JMSMessageConsumerTest.java | 31 ++++++++++++++++++++
2 files changed, 33 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/e81453e6/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPSessionCallback.java
----------------------------------------------------------------------
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 14c1042..1ca4410 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
@@ -284,6 +284,8 @@ public class AMQPSessionCallback implements SessionCallback {
serverSession.createQueue(address, queueName, routingType, filter, false, false, -1, true, true);
} catch (ActiveMQSecurityException se) {
throw ActiveMQAMQPProtocolMessageBundle.BUNDLE.securityErrorCreatingConsumer(se.getMessage());
+ } catch (ActiveMQQueueExistsException e) {
+ // ignore as may be caused by multiple, concurrent clients
}
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/e81453e6/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
index 0d8fdde..485d886 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/JMSMessageConsumerTest.java
@@ -21,7 +21,10 @@ import java.util.Enumeration;
import java.util.Random;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
import javax.jms.BytesMessage;
import javax.jms.Connection;
@@ -35,6 +38,7 @@ import javax.jms.MessageProducer;
import javax.jms.QueueBrowser;
import javax.jms.Session;
import javax.jms.TextMessage;
+import javax.jms.Topic;
import org.apache.activemq.artemis.core.server.Queue;
import org.apache.activemq.artemis.tests.util.Wait;
@@ -836,4 +840,31 @@ public class JMSMessageConsumerTest extends JMSClientTestSupport {
connection.close();
}
}
+
+ @Test
+ public void testConcurrentSharedConsumerConnections() throws Exception {
+ final int concurrentConnections = 20;
+ final ExecutorService executorService = Executors.newFixedThreadPool(concurrentConnections);
+
+ final AtomicBoolean failedToSubscribe = new AtomicBoolean(false);
+ for (int i = 1; i < concurrentConnections; i++) {
+ executorService.submit(() -> {
+ try (Connection connection = createConnection()) {
+ connection.start();
+ @SuppressWarnings("resource")
+ final Session session = connection.createSession();
+ final Topic topic = session.createTopic("topics.foo");
+ session.createSharedConsumer(topic, "MY_SUB");
+ Thread.sleep(100);
+ } catch (final Exception ex) {
+ ex.printStackTrace();
+ failedToSubscribe.set(true);
+ }
+ });
+ }
+ executorService.shutdown();
+ executorService.awaitTermination(30, TimeUnit.SECONDS);
+
+ assertFalse(failedToSubscribe.get());
+ }
}
[2/2] activemq-artemis git commit: This closes #2426
Posted by cl...@apache.org.
This closes #2426
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/9d680cc0
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/9d680cc0
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/9d680cc0
Branch: refs/heads/master
Commit: 9d680cc0baf7882d9b216b78c7cd3db73eef39bf
Parents: 2906293 e81453e
Author: Clebert Suconic <cl...@apache.org>
Authored: Wed Nov 14 10:49:16 2018 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Wed Nov 14 10:49:16 2018 -0500
----------------------------------------------------------------------
.../amqp/broker/AMQPSessionCallback.java | 2 ++
.../amqp/JMSMessageConsumerTest.java | 31 ++++++++++++++++++++
2 files changed, 33 insertions(+)
----------------------------------------------------------------------