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); } } }