summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQConnection.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
index 07b8d8d9b7..9abc94b3df 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
@@ -300,7 +300,7 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
//We need to change protocol handler here as an error during the connect will not
// cause the StateManager to be replaced. So the state is out of sync on reconnect
// This can be seen when a exception occurs during connection. i.e. log4j NoSuchMethod. (using < 1.2.12)
- _protocolHandler.setStateManager(new AMQStateManager());
+ _protocolHandler.setStateManager(new AMQStateManager());
if (_logger.isInfoEnabled())
{
@@ -809,6 +809,16 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
_protocolHandler.closeConnection(timeout);
+ //If the taskpool hasn't shutdown by now then give it shutdownNow.
+ // This will interupt any running tasks.
+ if (!_taskPool.isTerminated())
+ {
+ List<Runnable> tasks = _taskPool.shutdownNow();
+ for (Runnable r : tasks)
+ {
+ _logger.warn("Connection close forced taskpool to prevent execution:" + r);
+ }
+ }
}
catch (AMQException e)
{