Fix test, remote broker only dequeues the message if it is ack'd otherwise it remains in-flight.
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/0a6e217f Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/0a6e217f Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/0a6e217f Branch: refs/heads/activemq-5.10.x Commit: 0a6e217fd65d0f25778ddaf78fcbb28bdf8b1b8d Parents: 58be712 Author: Timothy Bish <[email protected]> Authored: Tue Aug 19 14:37:30 2014 -0400 Committer: Hadrian Zbarcea <[email protected]> Committed: Wed Dec 17 19:47:31 2014 -0500 ---------------------------------------------------------------------- .../activemq/network/DemandForwardingBridgeTest.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/0a6e217f/activemq-unit-tests/src/test/java/org/apache/activemq/network/DemandForwardingBridgeTest.java ---------------------------------------------------------------------- diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/network/DemandForwardingBridgeTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/network/DemandForwardingBridgeTest.java index 020a511..02b207c 100755 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/network/DemandForwardingBridgeTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/network/DemandForwardingBridgeTest.java @@ -26,6 +26,7 @@ import org.apache.activemq.command.ActiveMQDestination; import org.apache.activemq.command.ConnectionInfo; import org.apache.activemq.command.ConsumerInfo; import org.apache.activemq.command.Message; +import org.apache.activemq.command.MessageAck; import org.apache.activemq.command.ProducerInfo; import org.apache.activemq.command.SessionInfo; import org.apache.activemq.util.Wait; @@ -80,14 +81,20 @@ public class DemandForwardingBridgeTest extends NetworkTestSupport { // Now create remote consumer that should cause message to move to this // remote consumer. - ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); + final ConsumerInfo consumerInfo2 = createConsumerInfo(sessionInfo2, destination); connection2.request(consumerInfo2); // Make sure the message was delivered via the remote. assertTrue("message was received", Wait.waitFor(new Wait.Condition() { @Override public boolean isSatisified() throws Exception { - return receiveMessage(connection2) != null; + Message msg = receiveMessage(connection2); + if (msg != null) { + connection2.request(createAck(consumerInfo2, msg, 1, MessageAck.STANDARD_ACK_TYPE)); + return true; + } + + return false; } })); @@ -97,6 +104,7 @@ public class DemandForwardingBridgeTest extends NetworkTestSupport { return 1 == destinationStatistics.getForwards().getCount(); } })); + assertEquals("broker dest stat dequeues", 1, destinationStatistics.getDequeues().getCount()); assertEquals("remote broker dest stat dequeues", 1, remoteBroker.getDestination(destination).getDestinationStatistics().getDequeues().getCount()); }
