diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/jms/DestinationBridge.java b/activemq-broker/src/main/java/org/apache/activemq/network/jms/DestinationBridge.java index 7fc42d17b2..9595aee823 100755 --- a/activemq-broker/src/main/java/org/apache/activemq/network/jms/DestinationBridge.java +++ b/activemq-broker/src/main/java/org/apache/activemq/network/jms/DestinationBridge.java @@ -82,6 +82,7 @@ public abstract class DestinationBridge implements Service, MessageListener { return jmsConnector.createReplyToBridge(destination, getConnnectionForConsumer(), getConnectionForProducer()); } + @Override public void start() throws Exception { if (started.compareAndSet(false, true)) { createConsumer(); @@ -89,16 +90,18 @@ public abstract class DestinationBridge implements Service, MessageListener { } } + @Override public void stop() throws Exception { started.set(false); } + @Override public void onMessage(Message message) { int attempt = 0; final int maxRetries = jmsConnector.getReconnectionPolicy().getMaxSendRetries(); - while (started.get() && message != null && attempt <= maxRetries) { + while (started.get() && message != null && (maxRetries == ReconnectionPolicy.INFINITE || attempt <= maxRetries)) { try {