@Override public void run() { try { logger.debug("stopping bridge " + BridgeImpl.this); queue.removeConsumer(BridgeImpl.this); if (!pendingAcks.await(10, TimeUnit.SECONDS)) { ActiveMQServerLogger.LOGGER.timedOutWaitingCompletions( BridgeImpl.this.toString(), pendingAcks.getCount()); } synchronized (BridgeImpl.this) { logger.debug("Closing Session for bridge " + BridgeImpl.this.name); started = false; active = false; } if (session != null) { logger.debug("Cleaning up session " + session); session.removeFailureListener(BridgeImpl.this); try { session.close(); session = null; } catch (ActiveMQException dontcare) { } } if (sessionConsumer != null) { logger.debug("Cleaning up session " + session); try { sessionConsumer.close(); sessionConsumer = null; } catch (ActiveMQException dontcare) { } } internalCancelReferences(); if (csf != null) { csf.cleanup(); } synchronized (connectionGuard) { keepConnecting = true; } if (logger.isTraceEnabled()) { logger.trace("Removing consumer on stopRunnable " + this + " from queue " + queue); } ActiveMQServerLogger.LOGGER.bridgeStopped(name); } catch (InterruptedException | RuntimeException e) { ActiveMQServerLogger.LOGGER.error("Failed to stop bridge", e); } }
@Override public void run() { try { queue.removeConsumer(BridgeImpl.this); if (!pendingAcks.await(60, TimeUnit.SECONDS)) { ActiveMQServerLogger.LOGGER.timedOutWaitingCompletions( BridgeImpl.this.toString(), pendingAcks.getCount()); } synchronized (BridgeImpl.this) { started = false; active = false; } internalCancelReferences(); ActiveMQServerLogger.LOGGER.bridgePaused(name); } catch (Exception e) { ActiveMQServerLogger.LOGGER.errorPausingBridge(e); } }