summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-03-01 14:15:09 +0000
committerKeith Wall <kwall@apache.org>2012-03-01 14:15:09 +0000
commit0c926da1ca0d21c4eaa661a78b962440a760c519 (patch)
treecaec258da67c740fcc4028037f50b1db745d636d
parent69e76169c501652ec77b0808387c18b4fa191b4a (diff)
downloadqpid-python-0c926da1ca0d21c4eaa661a78b962440a760c519.tar.gz
QPID-3867: ManagedQueueMBeanTest, fix test issue causing sporadic failure on some CI instances
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1295574 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java19
1 files changed, 12 insertions, 7 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java
index 16c10892cb..244e547e02 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java
@@ -223,17 +223,22 @@ public class ManagedQueueMBeanTest extends QpidBrokerTestCase
asyncConnection.stop();
- // The exact number of messages moved will be non deterministic, but the number of messages moved
- // plus the number consumed should be equal to the number we originally sent.
+ // The exact number of messages moved will be non deterministic, as the number of messages processed
+ // by the consumer cannot be predicited. There is also the possibility that a message can remain
+ // on the source queue. This situation will arise if a message has been acquired by the consumer, but not
+ // yet delivered to the client application (i.e. MessageListener#onMessage()) when the Connection#stop() occurs.
+ //
+ // The number of messages moved + the number consumed + any messages remaining on source should
+ // *always* be equal to the number we originally sent.
int numberOfMessagesReadByConsumer = totalConsumed.intValue();
int numberOfMessagesOnDestinationQueue = _managedDestinationQueue.getMessageCount().intValue();
- LOGGER.debug("Async consumer read : " + numberOfMessagesReadByConsumer
- + " Number of messages moved to destination : " + numberOfMessagesOnDestinationQueue);
- assertEquals(numberOfMessagesToSend, numberOfMessagesReadByConsumer + numberOfMessagesOnDestinationQueue);
-
int numberOfMessagesRemainingOnSourceQueue = _managedSourceQueue.getMessageCount().intValue();
- assertEquals(0, numberOfMessagesRemainingOnSourceQueue);
+
+ LOGGER.debug("Async consumer read : " + numberOfMessagesReadByConsumer
+ + " Number of messages moved to destination : " + numberOfMessagesOnDestinationQueue
+ + " Number of messages remaining on source : " + numberOfMessagesRemainingOnSourceQueue);
+ assertEquals("Unexpected number of messages after move", numberOfMessagesToSend, numberOfMessagesReadByConsumer + numberOfMessagesOnDestinationQueue + numberOfMessagesRemainingOnSourceQueue);
}
public void testMoveMessagesBetweenQueuesWithActiveConsumerOnDestinationQueue() throws Exception