From 062fd46fb22309fd99b0c59c5bec5384b659af52 Mon Sep 17 00:00:00 2001 From: "Rafael H. Schloming" Date: Tue, 4 Sep 2007 17:42:38 +0000 Subject: fixed a race condition in rollback() that leads to intermittant failures of TransactedTest, also modified TransactedTest to be slightly more robust git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@572751 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/test/unit/transacted/TransactedTest.java | 41 +++++++++++----------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'qpid/java/client/src/test') diff --git a/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java b/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java index 929621c496..678474a18b 100644 --- a/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java +++ b/qpid/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java @@ -171,34 +171,33 @@ public class TransactedTest extends TestCase public void testRollback() throws Exception { // add some messages - _logger.info("Send prep A"); - prepProducer1.send(prepSession.createTextMessage("A")); - _logger.info("Send prep B"); - prepProducer1.send(prepSession.createTextMessage("B")); - _logger.info("Send prep C"); - prepProducer1.send(prepSession.createTextMessage("C")); - - // Quick sleep to ensure all three get pre-fetched + _logger.info("Send prep RB_A"); + prepProducer1.send(prepSession.createTextMessage("RB_A")); + _logger.info("Send prep RB_B"); + prepProducer1.send(prepSession.createTextMessage("RB_B")); + _logger.info("Send prep RB_C"); + prepProducer1.send(prepSession.createTextMessage("RB_C")); + + _logger.info("Sending RB_X RB_Y RB_Z"); + producer2.send(session.createTextMessage("RB_X")); + producer2.send(session.createTextMessage("RB_Y")); + producer2.send(session.createTextMessage("RB_Z")); + _logger.info("Receiving RB_A RB_B"); + expect("RB_A", consumer1.receive(1000)); + expect("RB_B", consumer1.receive(1000)); + // Don't consume 'RB_C' leave it in the prefetch cache to ensure rollback removes it. + // Quick sleep to ensure 'RB_C' gets pre-fetched Thread.sleep(500); - _logger.info("Sending X Y Z"); - producer2.send(session.createTextMessage("X")); - producer2.send(session.createTextMessage("Y")); - producer2.send(session.createTextMessage("Z")); - _logger.info("Receiving A B"); - expect("A", consumer1.receive(1000)); - expect("B", consumer1.receive(1000)); - // Don't consume 'C' leave it in the prefetch cache to ensure rollback removes it. - // rollback _logger.info("rollback"); session.rollback(); - _logger.info("Receiving A B C"); + _logger.info("Receiving RB_A RB_B RB_C"); // ensure sent messages are not visible and received messages are requeued - expect("A", consumer1.receive(1000), true); - expect("B", consumer1.receive(1000), true); - expect("C", consumer1.receive(1000), true); + expect("RB_A", consumer1.receive(1000), true); + expect("RB_B", consumer1.receive(1000), true); + expect("RB_C", consumer1.receive(1000), true); _logger.info("Starting new connection"); testCon.start(); -- cgit v1.2.1