[prev in list] [next in list] [prev in thread] [next in thread] 

List:       activemq-commits
Subject:    svn commit: r1208377 - in /activemq/trunk/activemq-core/src:
From:       gtully () apache ! org
Date:       2011-11-30 10:58:22
Message-ID: 20111130105822.4FFD823888CC () eris ! apache ! org
[Download RAW message or body]

Author: gtully
Date: Wed Nov 30 10:58:21 2011
New Revision: 1208377

URL: http://svn.apache.org/viewvc?rev=1208377&view=rev
Log:
https://issues.apache.org/jira/browse/AMQ-2730 - test to validate there is no \
implicit limit on reconnects due to the task runner exceeding its iterations, if the \
task is not complete it re queues it, so at least on trunk, the taskrunner issue is \
resolved

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
  activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/failover/FailoverTransportTest.java


Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
                
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apach \
e/activemq/transport/failover/FailoverTransport.java?rev=1208377&r1=1208376&r2=1208377&view=diff
 ==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java \
                (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java \
Wed Nov 30 10:58:21 2011 @@ -952,7 +952,8 @@ public class FailoverTransport implement
 
             int reconnectLimit = calculateReconnectAttemptLimit();
 
-            if (reconnectLimit != INFINITE && ++connectFailures >= reconnectLimit) {
+            connectFailures++;
+            if (reconnectLimit != INFINITE && connectFailures >= reconnectLimit) {
                 LOG.error("Failed to connect to " + uris + " after: " + \
connectFailures + " attempt(s)");  connectionFailure = failure;
 
@@ -1158,6 +1159,10 @@ public class FailoverTransport implement
         return transport.getReceiveCounter();
     }
 
+    public int getConnectFailures() {
+        return connectFailures;
+    }
+
     public void connectionInterruptProcessingComplete(ConnectionId connectionId) {
         synchronized (reconnectMutex) {
             stateTracker.connectionInterruptProcessingComplete(this, connectionId);

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/failover/FailoverTransportTest.java
                
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apach \
e/activemq/transport/failover/FailoverTransportTest.java?rev=1208377&r1=1208376&r2=1208377&view=diff
 ==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/failover/FailoverTransportTest.java \
                (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/failover/FailoverTransportTest.java \
Wed Nov 30 10:58:21 2011 @@ -28,6 +28,7 @@ import org.apache.activemq.state.Connect
 import org.apache.activemq.transport.Transport;
 import org.apache.activemq.transport.TransportFactory;
 import org.apache.activemq.transport.TransportListener;
+import org.apache.activemq.util.Wait;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -41,6 +42,7 @@ public class FailoverTransportTest {
 
 	@Before
 	public void setUp() throws Exception {
+        commandsReceived = 0;
 	}
 
 	@After
@@ -50,7 +52,40 @@ public class FailoverTransportTest {
         }
     }
 
-	@Test(timeout=30000)
+    @Test(timeout = 30000)
+    public void testReconnectUnlimited() throws Exception {
+
+        Transport transport = TransportFactory.connect(
+                new \
URI("failover://(tcp://0.0.0.0:61616)?useExponentialBackOff=false&reconnectDelay=0&initialReconnectDelay=0"));
 +
+        transport.setTransportListener(new TransportListener() {
+
+            public void onCommand(Object command) {
+                commandsReceived++;
+            }
+
+            public void onException(IOException error) {
+            }
+
+            public void transportInterupted() {
+            }
+
+            public void transportResumed() {
+            }
+        });
+        transport.start();
+
+        this.failoverTransport = transport.narrow(FailoverTransport.class);
+
+        assertTrue("no implicit limit of 1000", Wait.waitFor(new Wait.Condition() {
+            @Override
+            public boolean isSatisified() throws Exception {
+                return failoverTransport.getConnectFailures() > 1002;
+            }
+        }));
+    }
+
+    @Test(timeout=30000)
 	public void testCommandsIgnoredWhenOffline() throws Exception {
 		this.transport = createTransport();
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic