Author: kwall
Date: Thu Mar 1 14:15:09 2012
New Revision: 1295574
URL: http://svn.apache.org/viewvc?rev=1295574&view=rev
Log:
QPID-3867: ManagedQueueMBeanTest, fix test issue causing sporadic failure on
some CI instances
Modified:
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java
Modified:
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java?rev=1295574&r1=1295573&r2=1295574&view=diff
==============================================================================
---
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java
(original)
+++
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/management/jmx/ManagedQueueMBeanTest.java
Thu Mar 1 14:15:09 2012
@@ -223,17 +223,22 @@ public class ManagedQueueMBeanTest exten
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
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]