From 3ab4f9bdc9bbc8375534f45022a02257eb6e030d Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Fri, 7 Feb 2014 16:02:09 +0000 Subject: QPID-5547 : [Java Broker] When handling rejects in 0-8/9/9-1 treat queues with no max delivery set as having infinite max delivery, rather than max delivery of 1 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565701 13f79535-47bb-0310-9956-ffa450edef68 --- .../test/unit/transacted/CommitRollbackTest.java | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'qpid/java/systests') diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/CommitRollbackTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/CommitRollbackTest.java index 610628a02d..14914664d6 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/CommitRollbackTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/CommitRollbackTest.java @@ -20,6 +20,7 @@ */ package org.apache.qpid.test.unit.transacted; +import org.apache.qpid.client.RejectBehaviour; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -638,4 +639,44 @@ public class CommitRollbackTest extends QpidBrokerTestCase } } } + + + public void testResendUnseenMessagesAfterRollback() throws Exception + { + resendAfterRollback(); + } + + public void testResendUnseenMessagesAfterRollbackWithServerReject() throws Exception + { + setTestSystemProperty(ClientProperties.REJECT_BEHAVIOUR_PROP_NAME, RejectBehaviour.SERVER.toString()); + resendAfterRollback(); + } + + private void resendAfterRollback() throws Exception + { + newConnection(); + + assertTrue("session is not transacted", _session.getTransacted()); + assertTrue("session is not transacted", _pubSession.getTransacted()); + + _logger.info("sending test message"); + String MESSAGE_TEXT = "message text"; + + _publisher.send(_pubSession.createTextMessage(MESSAGE_TEXT)); + _publisher.send(_pubSession.createTextMessage(MESSAGE_TEXT)); + + _pubSession.commit(); + + assertNotNull("two messages were sent, but none has been received", _consumer.receive(1000)); + + _session.rollback(); + + _logger.info("receiving result"); + + assertNotNull("two messages were sent, but none has been received", _consumer.receive(1000)); + assertNotNull("two messages were sent, but only one has been received", _consumer.receive(1000)); + assertNull("Only two messages were sent, but more have been received", _consumer.receive(100)); + + _session.commit(); + } } -- cgit v1.2.1