[Mulgara-svn] r578 - branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver
andrae at mulgara.org
andrae at mulgara.org
Thu Nov 22 09:39:02 UTC 2007
Author: andrae
Date: 2007-11-22 03:39:02 -0600 (Thu, 22 Nov 2007)
New Revision: 578
Modified:
branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransaction.java
Log:
Fixed cleanup code which was throwing the wrong exception.
Also added a call to abortTransaction if the cleanup fails, which necesitated
replacing the call to cleanup in abortTransaction to avoid potential infinite
recursion.
Modified: branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransaction.java
===================================================================
--- branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransaction.java 2007-11-22 09:37:06 UTC (rev 577)
+++ branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransaction.java 2007-11-22 09:39:02 UTC (rev 578)
@@ -101,7 +101,7 @@
return new MulgaraTransactionException(errorMessage, cause);
} finally {
- cleanupTransaction();
+ factory.transactionComplete(this);
}
}
@@ -276,7 +276,18 @@
}
}
- private void cleanupTransaction() {
- factory.transactionComplete(this);
+ private void cleanupTransaction() throws XAException {
+ try {
+ factory.transactionComplete(this);
+ } catch (MulgaraTransactionException em) {
+ try {
+ logger.error("Failed to cleanup transaction", em);
+ abortTransaction("Failure in cleanup", em);
+ throw new XAException(XAException.XAER_RMERR);
+ } catch (MulgaraTransactionException em2) {
+ logger.error("Failed to abort transaction on cleanup failure", em2);
+ throw new XAException(XAException.XAER_RMFAIL);
+ }
+ }
}
}
More information about the Mulgara-svn
mailing list