[infinispan-commits] Infinispan SVN: r1307 - trunk/core/src/main/java/org/infinispan/transaction/tm.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Thu Dec 17 17:31:10 EST 2009


Author: manik.surtani at jboss.com
Date: 2009-12-17 17:31:10 -0500 (Thu, 17 Dec 2009)
New Revision: 1307

Modified:
   trunk/core/src/main/java/org/infinispan/transaction/tm/DummyTransaction.java
Log:
better support for failures in prepare

Modified: trunk/core/src/main/java/org/infinispan/transaction/tm/DummyTransaction.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/transaction/tm/DummyTransaction.java	2009-12-17 14:13:43 UTC (rev 1306)
+++ trunk/core/src/main/java/org/infinispan/transaction/tm/DummyTransaction.java	2009-12-17 22:31:10 UTC (rev 1307)
@@ -73,14 +73,13 @@
     */
    public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, SystemException {
       try {
-         if (!notifyBeforeCompletion()) {
-            log.trace("Not running 2PC as Synchronization.before not successful");
-            return;
-         }
+         boolean successfulInit = notifyBeforeCompletion();
 
-         //1) run prepare first
-         status = Status.STATUS_PREPARING;
-         if (!runPrepare()) {
+         if (successfulInit) {
+            //1) run prepare first
+            status = Status.STATUS_PREPARING;
+         }
+         if (!successfulInit || !runPrepare()) {
             status = Status.STATUS_ROLLING_BACK;
          } else {
             status = Status.STATUS_PREPARED;
@@ -252,13 +251,10 @@
       boolean retval = true;
       if (syncs == null) return true;
       for (Synchronization s : syncs) {
-         if (trace) {
-            log.trace("processing beforeCompletion for " + s);
-         }
+         if (trace) log.trace("processing beforeCompletion for " + s);
          try {
             s.beforeCompletion();
-         }
-         catch (Throwable t) {
+         } catch (Throwable t) {
             retval = false;
             log.error("beforeCompletion() failed for " + s, t);
          }



More information about the infinispan-commits mailing list