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]

Reply via email to