From 3b5a4d7078a2bde766dfeacb832a97d2ca00d83e Mon Sep 17 00:00:00 2001 From: Timothy Bish Date: Thu, 15 Jun 2017 17:13:32 -0400 Subject: [PATCH] NO-JIRA update the AMQP tests to use the client close timeout Use the client built in close timeout instead of the executor which can leave threads running and causes the tests to take much longer than needed. (cherry picked from commit ce551cf97d95fbed89ebecf10c40a5060d7b756a) --- .../transport/amqp/AmqpTestSupport.java | 4 --- .../transport/amqp/JMSClientContext.java | 1 + .../transport/amqp/JMSClientTestSupport.java | 33 ++----------------- 3 files changed, 4 insertions(+), 34 deletions(-) diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java index 86402dcdce..69d1998629 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTestSupport.java @@ -25,8 +25,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.Vector; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import javax.jms.Connection; import javax.jms.Destination; @@ -69,8 +67,6 @@ public class AmqpTestSupport { protected static final Logger LOG = LoggerFactory.getLogger(AmqpTestSupport.class); - protected ExecutorService testService = Executors.newSingleThreadExecutor(); - protected BrokerService brokerService; protected Vector exceptions = new Vector<>(); protected int numberOfMessages; diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientContext.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientContext.java index f249e7ccf6..1789792cb4 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientContext.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientContext.java @@ -215,6 +215,7 @@ public class JMSClientContext { factory.setForceSyncSend(syncPublish); factory.setTopicPrefix("topic://"); factory.setQueuePrefix("queue://"); + factory.setCloseTimeout(60000); return factory; } diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java index 840865234f..a5c1ae592f 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java @@ -18,11 +18,6 @@ package org.apache.activemq.transport.amqp; import java.net.URI; import java.net.URISyntaxException; -import java.util.concurrent.Callable; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import javax.jms.Connection; import javax.jms.JMSException; @@ -33,40 +28,18 @@ public class JMSClientTestSupport extends AmqpTestSupport { protected Connection connection; - private Thread connectionCloseThread; - @Override @After public void tearDown() throws Exception { - Future future = testService.submit(new CloseConnectionTask()); try { LOG.debug("tearDown started."); - future.get(60, TimeUnit.SECONDS); - } catch (TimeoutException e) { - if (connectionCloseThread != null) { - connectionCloseThread.interrupt();; - } - - testService.shutdownNow(); - testService = Executors.newSingleThreadExecutor(); - throw new Exception("CloseConnection timed out"); - } finally { - connectionCloseThread = null; - connection = null; - super.tearDown(); - } - } - - public class CloseConnectionTask implements Callable { - @Override - public Boolean call() throws Exception { if (connection != null) { - connectionCloseThread = Thread.currentThread(); LOG.debug("in CloseConnectionTask.call(), calling connection.close()"); connection.close(); } - - return Boolean.TRUE; + } finally { + connection = null; + super.tearDown(); } }