Repository: activemq
Updated Branches:
  refs/heads/master d53b8f8d4 -> 816f81e60


[AMQ-6517] resolve intermittent test failure - wait for client connection to 
see broker disconnect


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

Branch: refs/heads/master
Commit: 816f81e605ab692ca48d22cce30cf3722f83013f
Parents: d53b8f8
Author: gtully <gary.tu...@gmail.com>
Authored: Wed Feb 22 14:35:27 2017 +0000
Committer: gtully <gary.tu...@gmail.com>
Committed: Wed Feb 22 14:35:27 2017 +0000

----------------------------------------------------------------------
 .../apache/activemq/RedeliveryPolicyTest.java   | 42 +++++++++++++-------
 1 file changed, 28 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/816f81e6/activemq-unit-tests/src/test/java/org/apache/activemq/RedeliveryPolicyTest.java
----------------------------------------------------------------------
diff --git 
a/activemq-unit-tests/src/test/java/org/apache/activemq/RedeliveryPolicyTest.java
 
b/activemq-unit-tests/src/test/java/org/apache/activemq/RedeliveryPolicyTest.java
index c403781..893ada5 100644
--- 
a/activemq-unit-tests/src/test/java/org/apache/activemq/RedeliveryPolicyTest.java
+++ 
b/activemq-unit-tests/src/test/java/org/apache/activemq/RedeliveryPolicyTest.java
@@ -480,16 +480,16 @@ public class RedeliveryPolicyTest extends JmsTestSupport {
         final int maxRedeliveries = 4;
         for (int i=0;i<=maxRedeliveries +1;i++) {
 
-            connection = 
(ActiveMQConnection)factory.createConnection(userName, password);
-            connections.add(connection);
+            final ActiveMQConnection consumerConnection = 
(ActiveMQConnection)factory.createConnection(userName, password);
+            connections.add(consumerConnection);
             // Receive a message with the JMS API
-            RedeliveryPolicy policy = connection.getRedeliveryPolicy();
+            RedeliveryPolicy policy = consumerConnection.getRedeliveryPolicy();
             policy.setInitialRedeliveryDelay(0);
             policy.setUseExponentialBackOff(false);
             policy.setMaximumRedeliveries(maxRedeliveries);
 
-            connection.start();
-            session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
+            consumerConnection.start();
+            session = consumerConnection.createSession(true, 
Session.AUTO_ACKNOWLEDGE);
             MessageConsumer consumer = session.createConsumer(destination);
 
             ActiveMQTextMessage m = 
((ActiveMQTextMessage)consumer.receive(4000));
@@ -513,11 +513,18 @@ public class RedeliveryPolicyTest extends JmsTestSupport {
                 transportServer.stop();
             }
 
+            Wait.waitFor(new Wait.Condition() {
+                @Override
+                public boolean isSatisified() throws Exception {
+                    return consumerConnection.isTransportFailed();
+                }
+            });
+
             try {
-                connection.close();
+                consumerConnection.close();
             } catch (Exception expected) {
             } finally {
-                connections.remove(connection);
+                connections.remove(consumerConnection);
             }
         }
 
@@ -553,17 +560,17 @@ public class RedeliveryPolicyTest extends JmsTestSupport {
         final int maxRedeliveries = 4;
         for (int i=0;i<=maxRedeliveries + 1;i++) {
 
-            connection = 
(ActiveMQConnection)factory.createConnection(userName, password);
-            connections.add(connection);
+            final ActiveMQConnection consumerConnection = 
(ActiveMQConnection)factory.createConnection(userName, password);
+            connections.add(consumerConnection);
             // Receive a message with the JMS API
-            RedeliveryPolicy policy = connection.getRedeliveryPolicy();
+            RedeliveryPolicy policy = consumerConnection.getRedeliveryPolicy();
             policy.setInitialRedeliveryDelay(0);
             policy.setUseExponentialBackOff(false);
             policy.setMaximumRedeliveries(maxRedeliveries);
             policy.setPreDispatchCheck(false);
 
-            connection.start();
-            session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
+            consumerConnection.start();
+            session = consumerConnection.createSession(true, 
Session.AUTO_ACKNOWLEDGE);
             MessageConsumer consumer = session.createConsumer(destination);
 
             ActiveMQTextMessage m = 
((ActiveMQTextMessage)consumer.receive(4000));
@@ -576,11 +583,18 @@ public class RedeliveryPolicyTest extends JmsTestSupport {
                 transportServer.stop();
             }
 
+            Wait.waitFor(new Wait.Condition() {
+                @Override
+                public boolean isSatisified() throws Exception {
+                    return consumerConnection.isTransportFailed();
+                }
+            });
+
             try {
-                connection.close();
+                consumerConnection.close();
             } catch (Exception expected) {
             } finally {
-                connections.remove(connection);
+                connections.remove(consumerConnection);
             }
         }
     }

Reply via email to