diff --git a/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java b/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java index c7f953b337..ba19d738d0 100755 --- a/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java +++ b/activemq-core/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java @@ -583,8 +583,6 @@ public class ActiveMQMessageConsumer implements MessageAvailableConsumer, StatsC public void dispose() throws JMSException { if (!unconsumedMessages.isClosed()) { - //log.warn("Consumer is being disposed.", new Exception("trace exception.")); - // Do we have any acks we need to send out before closing? // Ack any delivered messages now. (session may still // commit/rollback the acks). diff --git a/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java b/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java index b8d108278e..51571ab1b4 100755 --- a/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java +++ b/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java @@ -826,7 +826,10 @@ public class TransportConnection implements Service, Connection, Task, CommandVi if( disposed.get() ) { if( dispatchStopped.compareAndSet(false, true)) { if( transportException.get()==null ) { - dispatch(new ShutdownInfo()); + try { + dispatch(new ShutdownInfo()); + } catch (Throwable ignore) { + } } dispatchStoppedLatch.countDown(); } @@ -930,11 +933,12 @@ public class TransportConnection implements Service, Connection, Task, CommandVi } - taskRunner.wakeup(); - dispatchStoppedLatch.await(); - if( taskRunner!=null ) + if( taskRunner!=null ) { + taskRunner.wakeup(); + dispatchStoppedLatch.await(); taskRunner.shutdown(); + } // Run the MessageDispatch callbacks so that message references get cleaned up. for (Iterator iter = dispatchQueue.iterator(); iter.hasNext();) {