From d1215ef0cf64a9f27d13c1406d91de1f5f487539 Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Thu, 1 Mar 2012 08:50:38 +0000 Subject: QPID-3599: Python session tests fail against the Java Broker due to unexpected redelivered status Changed Java Broker so once a message is acknowledged, if the session is transactional and the transaction is rolled-back, the queue entry is marked as redelivered. The rationale is that if the client has acknowledged, then it is certain they have seen it/them. The python tests testCommitAck and testRollback highlighted this defect as they acknowledge the session before rollback (something that is impossible to control from the JMS API). Python tests reenabled against the Java Broker: qpid.tests.messaging.endpoints.SessionTests.testCommitAck qpid.tests.messaging.endpoints.SessionTests.testRelease qpid.tests.messaging.endpoints.SessionTests.testRollback Work of Robbie Gemmell and myself. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1295474 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/qpid/server/transport/ServerSession.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'qpid/java/broker/src/main') diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java index c51b17c447..9f7b8c53b8 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java @@ -403,6 +403,9 @@ public class ServerSession extends Session public void onRollback() { + // The client has acknowledge the message and therefore have seen it. + // In the event of rollback, the message must be marked as redelivered. + entry.setRedelivered(); entry.release(); } }); -- cgit v1.2.1