diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2007-09-04 17:42:38 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2007-09-04 17:42:38 +0000 |
| commit | ba9a064e7a85aa1b7d9f78a6e155c0e678b22378 (patch) | |
| tree | 15ac6cb19bf7fe11208af8880b035bfd782a9c48 /java/client/src/test | |
| parent | 914603f2dbfc30bb005ea9c875243a7edccf41da (diff) | |
| download | qpid-python-ba9a064e7a85aa1b7d9f78a6e155c0e678b22378.tar.gz | |
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/qpid@572751 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client/src/test')
| -rw-r--r-- | java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java index 929621c496..678474a18b 100644 --- a/java/client/src/test/java/org/apache/qpid/test/unit/transacted/TransactedTest.java +++ b/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(); |
