summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2007-01-19 13:49:02 +0000
committerMartin Ritchie <ritchiem@apache.org>2007-01-19 13:49:02 +0000
commite210feaab0567a72adacadc2dacf2923edee522a (patch)
tree320f1173f7f32d899c2e8a76c3173cc432e8783a /java
parentd937721801fdc0a83ead71edcd1b3c0b88a4fa47 (diff)
downloadqpid-python-e210feaab0567a72adacadc2dacf2923edee522a.tar.gz
Removed mandatory 6 second sleep! replaced with a countdown latch that will wait for a max of 2 seconds
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@497813 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/client/src/test/java/org/apache/qpid/client/MessageListenerMultiConsumerTest.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/java/client/src/test/java/org/apache/qpid/client/MessageListenerMultiConsumerTest.java b/java/client/src/test/java/org/apache/qpid/client/MessageListenerMultiConsumerTest.java
index 58aaaf56b8..39a2e9c627 100644
--- a/java/client/src/test/java/org/apache/qpid/client/MessageListenerMultiConsumerTest.java
+++ b/java/client/src/test/java/org/apache/qpid/client/MessageListenerMultiConsumerTest.java
@@ -36,6 +36,8 @@ import javax.jms.ConnectionFactory;
import javax.naming.Context;
import javax.naming.spi.InitialContextFactory;
import java.util.Hashtable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
/**
* QPID-293 Setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue
@@ -63,6 +65,7 @@ public class MessageListenerMultiConsumerTest extends TestCase
private MessageConsumer _consumer2;
private boolean _testAsync;
+ private final CountDownLatch _allMessagesSent = new CountDownLatch(2); //all messages Sent Lock
protected void setUp() throws Exception
{
@@ -72,7 +75,7 @@ public class MessageListenerMultiConsumerTest extends TestCase
InitialContextFactory factory = new PropertiesFileInitialContextFactory();
Hashtable<String, String> env = new Hashtable<String, String>();
-
+
env.put("connectionfactory.connection", "amqp://client:client@MLT_ID/tests?brokerlist='vm://:1'");
env.put("queue.queue", "direct://amq.direct//MessageListenerTest");
@@ -121,7 +124,7 @@ public class MessageListenerMultiConsumerTest extends TestCase
{
assertEquals(MSG_COUNT, receivedCount1 + receivedCount2);
}
- _clientConnection.close();
+ _clientConnection.close();
super.tearDown();
TransportConnection.killAllVMBrokers();
@@ -165,6 +168,12 @@ public class MessageListenerMultiConsumerTest extends TestCase
_logger.info("Client 1 Received Message(" + receivedCount1 + "):" + message);
receivedCount1++;
+
+ if (receivedCount1 == MSG_COUNT / 2)
+ {
+ _allMessagesSent.countDown();
+ }
+
}
});
@@ -175,15 +184,19 @@ public class MessageListenerMultiConsumerTest extends TestCase
_logger.info("Client 2 Received Message(" + receivedCount2 + "):" + message);
receivedCount2++;
+ if (receivedCount2 == MSG_COUNT / 2)
+ {
+ _allMessagesSent.countDown();
+ }
}
});
- _logger.info("Waiting 3 seconds for messages");
+ _logger.info("Waiting upto 2 seconds for messages");
try
{
- Thread.sleep(6000);
+ _allMessagesSent.await(2000, TimeUnit.MILLISECONDS);
}
catch (InterruptedException e)
{