You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2012/03/01 09:50:38 UTC

svn commit: r1295474 - in /qpid/trunk/qpid/java: broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java test-profiles/python_tests/Java010PythonExcludes

Author: kwall
Date: Thu Mar  1 08:50:38 2012
New Revision: 1295474

URL: http://svn.apache.org/viewvc?rev=1295474&view=rev
Log:
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 <ro...@apache.org> and myself.

Modified:
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
    qpid/trunk/qpid/java/test-profiles/python_tests/Java010PythonExcludes

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java?rev=1295474&r1=1295473&r2=1295474&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java Thu Mar  1 08:50:38 2012
@@ -403,6 +403,9 @@ public class ServerSession extends Sessi
 
                                  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();
                                  }
                              });

Modified: qpid/trunk/qpid/java/test-profiles/python_tests/Java010PythonExcludes
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/test-profiles/python_tests/Java010PythonExcludes?rev=1295474&r1=1295473&r2=1295474&view=diff
==============================================================================
--- qpid/trunk/qpid/java/test-profiles/python_tests/Java010PythonExcludes (original)
+++ qpid/trunk/qpid/java/test-profiles/python_tests/Java010PythonExcludes Thu Mar  1 08:50:38 2012
@@ -67,7 +67,3 @@ qpid_tests.broker_0_10.message.MessageTe
 #QPID-3605 Durable subscriber with no-local true receives messages on re-connection
 qpid_tests.broker_0_10.message.MessageTests.test_no_local_awkward
 
-#QPID-3599 Tests fail due to differences in expected message Redelivered status
-qpid.tests.messaging.endpoints.SessionTests.testCommitAck
-qpid.tests.messaging.endpoints.SessionTests.testRelease
-qpid.tests.messaging.endpoints.SessionTests.testRollback



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org