Repository: qpid-jms
Updated Branches:
  refs/heads/master 18c017da8 -> da0d4e50a


QPIDJMS-376: fix tests to avoid sporadic/erroneous failures due to races


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/da0d4e50
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/da0d4e50
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/da0d4e50

Branch: refs/heads/master
Commit: da0d4e50a43a51abd51a13a9996b116d851d2f62
Parents: 18c017d
Author: Robbie Gemmell <rob...@apache.org>
Authored: Wed Apr 11 12:20:03 2018 +0100
Committer: Robbie Gemmell <rob...@apache.org>
Committed: Wed Apr 11 12:20:03 2018 +0100

----------------------------------------------------------------------
 .../integration/ConsumerIntegrationTest.java    | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/da0d4e50/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConsumerIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConsumerIntegrationTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConsumerIntegrationTest.java
index e8a506a..c573972 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConsumerIntegrationTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/ConsumerIntegrationTest.java
@@ -141,20 +141,20 @@ public class ConsumerIntegrationTest extends 
QpidJmsTestCase {
         final String BREAD_CRUMB = "ErrorMessage";
 
         try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
-            final AtomicBoolean consumerClosed = new AtomicBoolean();
-            final AtomicBoolean exceptionFired = new AtomicBoolean();
+            CountDownLatch consumerClosed = new CountDownLatch(1);
+            CountDownLatch exceptionFired = new CountDownLatch(1);
 
             JmsConnection connection = (JmsConnection) 
testFixture.establishConnecton(testPeer);
             connection.setExceptionListener(new ExceptionListener() {
                 @Override
                 public void onException(JMSException exception) {
-                    exceptionFired.set(true);
+                    exceptionFired.countDown();
                 }
             });
             connection.addConnectionListener(new 
JmsDefaultConnectionListener() {
                 @Override
                 public void onConsumerClosed(MessageConsumer consumer, 
Throwable exception) {
-                    consumerClosed.set(true);
+                    consumerClosed.countDown();
                 }
             });
 
@@ -189,8 +189,8 @@ public class ConsumerIntegrationTest extends 
QpidJmsTestCase {
                 }
             }, 10000, 10));
 
-            assertTrue("Consumer closed callback didn't trigger", 
consumerClosed.get());
-            assertFalse("JMS Exception listener shouldn't fire with no 
MessageListener", exceptionFired.get());
+            assertTrue("Consumer closed callback didn't trigger", 
consumerClosed.await(2000, TimeUnit.MILLISECONDS));
+            assertFalse("JMS Exception listener shouldn't fire with no 
MessageListener", exceptionFired.await(20, TimeUnit.MILLISECONDS));
 
             // Try closing it explicitly, should effectively no-op in client.
             // The test peer will throw during close if it sends anything.
@@ -203,21 +203,21 @@ public class ConsumerIntegrationTest extends 
QpidJmsTestCase {
         final String BREAD_CRUMB = "ErrorMessage";
 
         try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
-            final AtomicBoolean consumerClosed = new AtomicBoolean();
-            final AtomicBoolean exceptionFired = new AtomicBoolean();
+            CountDownLatch consumerClosed = new CountDownLatch(1);
+            CountDownLatch exceptionFired = new CountDownLatch(1);
 
             JmsConnection connection = (JmsConnection) 
testFixture.establishConnecton(testPeer);
             connection.setExceptionListener(new ExceptionListener() {
                 @Override
                 public void onException(JMSException exception) {
                     LOG.trace("JMS ExceptionListener: ", exception);
-                    exceptionFired.set(true);
+                    exceptionFired.countDown();
                 }
             });
             connection.addConnectionListener(new 
JmsDefaultConnectionListener() {
                 @Override
                 public void onConsumerClosed(MessageConsumer consumer, 
Throwable exception) {
-                    consumerClosed.set(true);
+                    consumerClosed.countDown();
                 }
             });
 
@@ -258,8 +258,8 @@ public class ConsumerIntegrationTest extends 
QpidJmsTestCase {
                 }
             }, 10000, 10));
 
-            assertTrue("Consumer closed callback didn't trigger", 
consumerClosed.get());
-            assertTrue("JMS Exception listener shouldn't fire with no 
MessageListener", exceptionFired.get());
+            assertTrue("Consumer closed callback didn't trigger",  
consumerClosed.await(2000, TimeUnit.MILLISECONDS));
+            assertTrue("JMS Exception listener should have fired with a 
MessageListener", exceptionFired.await(2000, TimeUnit.MILLISECONDS));
 
             // Try closing it explicitly, should effectively no-op in client.
             // The test peer will throw during close if it sends anything.


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to