diff options
Diffstat (limited to 'java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java')
-rw-r--r-- | java/systests/src/main/java/org/apache/qpid/test/client/DupsOkTest.java | 36 |
1 files changed, 28 insertions, 8 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 037c8285bc..463946e14a 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 @@ -1,5 +1,8 @@ package org.apache.qpid.test.client; +import org.apache.qpid.AMQException; +import org.apache.qpid.client.AMQDestination; +import org.apache.qpid.client.AMQSession; import org.apache.qpid.test.VMTestCase; import javax.jms.Connection; @@ -69,21 +72,24 @@ public class DupsOkTest extends VMTestCase producerConnection.close(); } - public void testDupsOK() throws NamingException, JMSException, InterruptedException + public void testDupsOK() throws NamingException, JMSException, InterruptedException, AMQException { //Create Client Connection clientConnection = ((ConnectionFactory) _context.lookup("connection")).createConnection(); clientConnection.start(); - Session clientSession = clientConnection.createSession(false, Session.DUPS_OK_ACKNOWLEDGE); + final Session clientSession = clientConnection.createSession(false, Session.DUPS_OK_ACKNOWLEDGE); MessageConsumer consumer = clientSession.createConsumer(_queue); consumer.setMessageListener(new MessageListener() { + int _msgCount = 0; + public void onMessage(Message message) { + _msgCount++; if (message == null) { fail("Should not get null messages"); @@ -98,12 +104,26 @@ public class DupsOkTest extends VMTestCase assertEquals("The queue should have 4999 msgs left", 4999, getMessageCount(_queue.getQueueName())); }*/ - if (message.getIntProperty("count") == 9999) + if (message.getIntProperty("count") == MSG_COUNT) { - assertEquals("The queue should have 0 msgs left", 0, getMessageCount(_queue.getQueueName())); - - //This is the last message so release test. - _awaitCompletion.countDown(); + try + { + long remainingMessages = ((AMQSession) clientSession).getQueueDepth((AMQDestination) _queue); + if(remainingMessages != 0) + { + + assertEquals("The queue should have 0 msgs left, seen " + _msgCount + " messages.", 0, getMessageCount(_queue.getQueueName())); + } + } + catch (AMQException e) + { + assertNull("Got AMQException", e); + } + finally + { + //This is the last message so release test. + _awaitCompletion.countDown(); + } } } @@ -131,9 +151,9 @@ public class DupsOkTest extends VMTestCase // consumer.close(); + assertEquals("The queue should have 0 msgs left", 0, ((AMQSession) clientSession).getQueueDepth((AMQDestination) _queue)); clientConnection.close(); - assertEquals("The queue should have 0 msgs left", 0, getMessageCount(_queue.getQueueName())); } |