diff options
author | Robert Gemmell <robbie@apache.org> | 2011-10-07 08:55:58 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2011-10-07 08:55:58 +0000 |
commit | b920e7223e4abe6a99f09e20a62cb1372372a52e (patch) | |
tree | 8c8b39960b98d12d7aaf4d14f36e5a882efb726b | |
parent | a383c2e4f5acb3654ce8e927d7035752e75674e9 (diff) | |
download | qpid-python-b920e7223e4abe6a99f09e20a62cb1372372a52e.tar.gz |
QPID-3526: ensure that the session is marked clean after message.acknowledge() is used, add test to verify behaviour
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1179965 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | java/client/src/main/java/org/apache/qpid/client/AMQSession.java | 1 | ||||
-rw-r--r-- | java/systests/src/main/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java index 4f7d344655..44c4e8987a 100644 --- a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java +++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java @@ -630,6 +630,7 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic try { acknowledgeImpl(); + markClean(); } catch (TransportException e) { diff --git a/java/systests/src/main/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java b/java/systests/src/main/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java index aa62106c46..66f8fe0546 100644 --- a/java/systests/src/main/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java +++ b/java/systests/src/main/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java @@ -463,6 +463,31 @@ public class FailoverBehaviourTest extends FailoverBaseCase implements Connectio } /** + * Test that calling acknowledge before failover leaves the session + * clean for use after failover. + */ + public void testAcknowledgeBeforeFailover() throws Exception + { + init(Session.CLIENT_ACKNOWLEDGE, true); + + produceMessages(); + + // consume messages and acknowledge them + Message lastMessage = consumeMessages(); + lastMessage.acknowledge(); + + causeFailure(); + + assertFailoverException(); + + produceMessages(); + + // tests whether receiving and acknowledgment is working after recover + lastMessage = consumeMessages(); + lastMessage.acknowledge(); + } + + /** * Test that receiving of messages after failover prior to calling * {@link Message#acknowledge()} still results in acknowledge throwing an exception. */ |