[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