Repository: activemq Updated Branches: refs/heads/master 3c0a4d960 -> d7b5a62bb
https://issues.apache.org/jira/browse/AMQ-6286 - variant on test with n consumers sharing a session Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/d7b5a62b Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/d7b5a62b Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/d7b5a62b Branch: refs/heads/master Commit: d7b5a62bb0f5131986bbb16d26758f986e4d9222 Parents: 3c0a4d9 Author: gtully <[email protected]> Authored: Fri May 13 15:50:13 2016 +0100 Committer: gtully <[email protected]> Committed: Fri May 13 15:50:13 2016 +0100 ---------------------------------------------------------------------- .../QueueOrderSingleTransactedConsumerTest.java | 33 ++++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/d7b5a62b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueOrderSingleTransactedConsumerTest.java ---------------------------------------------------------------------- diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueOrderSingleTransactedConsumerTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueOrderSingleTransactedConsumerTest.java index 4ef36bd..78c50b3 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueOrderSingleTransactedConsumerTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueOrderSingleTransactedConsumerTest.java @@ -47,15 +47,37 @@ public class QueueOrderSingleTransactedConsumerTest { publishMessages(100); - consumeVerifyOrderAndRollback(20); - consumeVerifyOrderAndRollback(10); - consumeVerifyOrderAndRollback(5); + consumeVerifyOrderRollback(20); + consumeVerifyOrderRollback(10); + consumeVerifyOrderRollback(5); } - private void consumeVerifyOrderAndRollback(final int num) throws Exception { + @Test + public void testSingleSessionXConsumerTxRepeat() throws Exception { + + publishMessages(100); + Connection connection = new ActiveMQConnectionFactory(broker.getTransportConnectorByScheme("tcp").getPublishableConnectString()).createConnection(); connection.start(); Session session = connection.createSession(true, Session.SESSION_TRANSACTED); + consumeVerifyOrder(session, 20); + session.rollback(); + consumeVerifyOrder(session, 10); + session.rollback(); + consumeVerifyOrder(session, 5); + session.commit(); + } + + private void consumeVerifyOrderRollback(final int num) throws Exception { + Connection connection = new ActiveMQConnectionFactory(broker.getTransportConnectorByScheme("tcp").getPublishableConnectString()).createConnection(); + connection.start(); + Session session = connection.createSession(true, Session.SESSION_TRANSACTED); + consumeVerifyOrder(session, num); + session.rollback(); + connection.close(); + } + + private void consumeVerifyOrder(Session session, final int num) throws Exception { MessageConsumer messageConsumer = session.createConsumer(dest); for (int i=0; i<num; ) { Message message = messageConsumer.receive(4000); @@ -64,8 +86,7 @@ public class QueueOrderSingleTransactedConsumerTest { i++; } } - session.rollback(); - connection.close(); + messageConsumer.close(); } private void publishMessages(int num) throws Exception {
