diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java b/java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java index 136726a640..40d4ae9be5 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java +++ b/java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java @@ -52,6 +52,10 @@ public class DupsOkTest extends QpidTestCase _queue = (Queue) getInitialContext().lookup("queue"); + //Declare the queue + Connection consumerConnection = getConnection(); + consumerConnection.createSession(false,Session.AUTO_ACKNOWLEDGE).createConsumer(_queue).close(); + //Create Producer put some messages on the queue Connection producerConnection = getConnection(); @@ -83,12 +87,14 @@ public class DupsOkTest extends QpidTestCase //Create Client Connection clientConnection = getConnection(); - clientConnection.start(); - final Session clientSession = clientConnection.createSession(false, Session.DUPS_OK_ACKNOWLEDGE); MessageConsumer consumer = clientSession.createConsumer(_queue); + assertEquals("The queue should have msgs at start", MSG_COUNT, ((AMQSession) clientSession).getQueueDepth((AMQDestination) _queue)); + + clientConnection.start(); + consumer.setMessageListener(new MessageListener() { int _msgCount = 0; @@ -146,11 +152,13 @@ public class DupsOkTest extends QpidTestCase throw e; } - - // wait for the ack to get back - Thread.sleep(1000); + //Close consumer to give broker time to process in bound Acks. As The main thread will be released while + // before the dispatcher has sent the ack back to the broker. + consumer.close(); assertEquals("The queue should have 0 msgs left", 0, ((AMQSession) clientSession).getQueueDepth((AMQDestination) _queue)); + + clientConnection.close(); } } |
