summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2011-10-07 08:55:58 +0000
committerRobert Gemmell <robbie@apache.org>2011-10-07 08:55:58 +0000
commitb920e7223e4abe6a99f09e20a62cb1372372a52e (patch)
tree8c8b39960b98d12d7aaf4d14f36e5a882efb726b
parenta383c2e4f5acb3654ce8e927d7035752e75674e9 (diff)
downloadqpid-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.java1
-rw-r--r--java/systests/src/main/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java25
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.
*/