You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/04/05 20:12:07 UTC

svn commit: r391694 - /incubator/activemq/trunk/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQEndpointWorker.java

Author: chirino
Date: Wed Apr  5 11:12:05 2006
New Revision: 391694

URL: http://svn.apache.org/viewcvs?rev=391694&view=rev
Log:
fix for http://jira.activemq.org/jira/browse/AMQ-651

Modified:
    incubator/activemq/trunk/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQEndpointWorker.java

Modified: incubator/activemq/trunk/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQEndpointWorker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQEndpointWorker.java?rev=391694&r1=391693&r2=391694&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQEndpointWorker.java (original)
+++ incubator/activemq/trunk/activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQEndpointWorker.java Wed Apr  5 11:12:05 2006
@@ -234,20 +234,27 @@
         connection=null;
     }
 
-    synchronized private void reconnect(JMSException error){
+    private void reconnect(JMSException error){
         log.debug("Reconnect cause: ",error);
-        // Only log errors if the server is really down.. And not a temp failure.
-        if (reconnectDelay == MAX_RECONNECT_DELAY) {
-            log.info("Endpoint connection to JMS broker failed: " + error.getMessage());
-            log.info("Endpoint will try to reconnect to the JMS broker in "+(MAX_RECONNECT_DELAY/1000)+" seconds");
+        long reconnectDelay;
+        synchronized(this) {
+            reconnectDelay = this.reconnectDelay;
+            // Only log errors if the server is really down.. And not a temp failure.
+            if (reconnectDelay == MAX_RECONNECT_DELAY) {
+                log.info("Endpoint connection to JMS broker failed: " + error.getMessage());
+                log.info("Endpoint will try to reconnect to the JMS broker in "+(MAX_RECONNECT_DELAY/1000)+" seconds");
+            }
         }
         try {
             disconnect();
             Thread.sleep(reconnectDelay);
-            // Use exponential rollback.
-            reconnectDelay*=2;
-            if (reconnectDelay > MAX_RECONNECT_DELAY)
-                reconnectDelay=MAX_RECONNECT_DELAY;
+            
+            synchronized(this) {
+                // Use exponential rollback.
+                this.reconnectDelay*=2;
+                if (this.reconnectDelay > MAX_RECONNECT_DELAY)
+                    this.reconnectDelay=MAX_RECONNECT_DELAY;
+            }
             connect();
         } catch(InterruptedException e) {}
     }