You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2016/05/11 20:03:41 UTC

activemq git commit: https://issues.apache.org/jira/browse/AMQ-6290

Repository: activemq
Updated Branches:
  refs/heads/master e53e34026 -> 2e64abc38


https://issues.apache.org/jira/browse/AMQ-6290

Close failed connection on start if the reconnect on exception flag is
enabled.  

Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/2e64abc3
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/2e64abc3
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/2e64abc3

Branch: refs/heads/master
Commit: 2e64abc38a0605f31fc47a89c8313f29cc72c170
Parents: e53e340
Author: Timothy Bish <ta...@gmail.com>
Authored: Wed May 11 16:03:19 2016 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Wed May 11 16:03:19 2016 -0400

----------------------------------------------------------------------
 .../apache/activemq/jms/pool/ConnectionPool.java   |  3 +++
 .../PooledConnectionSecurityExceptionTest.java     | 17 +++++++++++++----
 2 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/2e64abc3/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/ConnectionPool.java
----------------------------------------------------------------------
diff --git a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/ConnectionPool.java b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/ConnectionPool.java
index 2be4a6f..a449f9f 100644
--- a/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/ConnectionPool.java
+++ b/activemq-jms-pool/src/main/java/org/apache/activemq/jms/pool/ConnectionPool.java
@@ -125,6 +125,9 @@ public class ConnectionPool implements ExceptionListener {
                 connection.start();
             } catch (JMSException e) {
                 started.set(false);
+                if (isReconnectOnException()) {
+                    close();
+                }
                 throw(e);
             }
         }

http://git-wip-us.apache.org/repos/asf/activemq/blob/2e64abc3/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionSecurityExceptionTest.java
----------------------------------------------------------------------
diff --git a/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionSecurityExceptionTest.java b/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionSecurityExceptionTest.java
index 3a8eb27..a2338ed 100644
--- a/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionSecurityExceptionTest.java
+++ b/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionSecurityExceptionTest.java
@@ -106,7 +106,16 @@ public class PooledConnectionSecurityExceptionTest {
     }
 
     @Test
+    public void testFailureGetsNewConnectionOnRetryLooped() throws Exception {
+        for (int i = 0; i < 10; ++i) {
+            testFailureGetsNewConnectionOnRetry();
+        }
+    }
+
+    @Test
     public void testFailureGetsNewConnectionOnRetry() throws Exception {
+        pooledConnFact.setMaxConnections(1);
+
         final PooledConnection connection1 = (PooledConnection) pooledConnFact.createConnection("invalid", "credentials");
 
         try {
@@ -122,19 +131,19 @@ public class PooledConnectionSecurityExceptionTest {
             @Override
             public boolean isSatisified() throws Exception {
                 return connection1.getConnection() !=
-                          ((PooledConnection) pooledConnFact.createConnection("invalid", "credentials")).getConnection();
+                    ((PooledConnection) pooledConnFact.createConnection("invalid", "credentials")).getConnection();
             }
         }));
 
-        PooledConnection connection2 = (PooledConnection) pooledConnFact.createConnection("invalid", "credentials");
+        final PooledConnection connection2 = (PooledConnection) pooledConnFact.createConnection("invalid", "credentials");
+        assertNotSame(connection1.getConnection(), connection2.getConnection());
+
         try {
             connection2.start();
             fail("Should fail to connect");
         } catch (JMSSecurityException ex) {
             LOG.info("Caught expected security error");
         }
-
-        assertNotSame(connection1.getConnection(), connection2.getConnection());
     }
 
     @Test