[jboss-svn-commits] JBL Code SVN: r25057 - in labs/jbosstm/trunk: ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Feb 2 10:40:51 EST 2009
Author: jhalliday
Date: 2009-02-02 10:40:51 -0500 (Mon, 02 Feb 2009)
New Revision: 25057
Modified:
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
Log:
Add setRollbackOnly stacktrace to aid debugging. JBTM-66
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java 2009-02-02 15:37:39 UTC (rev 25056)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java 2009-02-02 15:40:51 UTC (rev 25057)
@@ -384,6 +384,14 @@
.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.inactive"));
}
}
+ else
+ {
+ // keep a record of why we are rolling back i.e. who called us first, it's a useful debug aid.
+ if(_rollbackOnlyCallerStacktrace == null)
+ {
+ _rollbackOnlyCallerStacktrace = new Throwable("setRollbackOnly called from:");
+ }
+ }
}
else
throw new IllegalStateException(
@@ -1423,8 +1431,13 @@
case ActionStatus.H_ROLLBACK:
case ActionStatus.ABORTED:
case ActionStatus.ABORTING:
- RollbackException rollbackException = new RollbackException(jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted"));
- if(_theTransaction.getDeferredThrowable() != null) {
+ RollbackException rollbackException = new RollbackException(jtaLogger.logMesg.getString("com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted"));
+ if(_rollbackOnlyCallerStacktrace != null) {
+ // we rolled back beacuse the user explicitly told us not to commit. Attach the trace of who did that for debug:
+ rollbackException.initCause(_rollbackOnlyCallerStacktrace);
+ }
+ else if(_theTransaction.getDeferredThrowable() != null) {
+ // we tried to commit but it went wrong - attach the reason for debug:
rollbackException.initCause(_theTransaction.getDeferredThrowable());
}
throw rollbackException;
@@ -1891,6 +1904,8 @@
private final boolean _xaTransactionTimeoutEnabled;
private Map _txLocalResources;
+
+ private Throwable _rollbackOnlyCallerStacktrace;
/**
* Count of last resources seen in this transaction.
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2009-02-02 15:37:39 UTC (rev 25056)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2009-02-02 15:40:51 UTC (rev 25057)
@@ -403,6 +403,11 @@
try
{
_theTransaction.rollbackOnly();
+ // keep a record of why we are rolling back i.e. who called us first, it's a useful debug aid.
+ if(_rollbackOnlyCallerStacktrace == null)
+ {
+ _rollbackOnlyCallerStacktrace = new Throwable("setRollbackOnly called from:");
+ }
}
catch (org.omg.CosTransactions.NoTransaction e3)
{
@@ -1397,7 +1402,12 @@
}
catch (TRANSACTION_ROLLEDBACK e4)
{
- throw new RollbackException(e4.toString());
+ RollbackException rollbackException = new RollbackException(e4.toString());
+ if(_rollbackOnlyCallerStacktrace != null) {
+ // we rolled back beacuse the user explicitly told us not to commit. Attach the trace of who did that for debug:
+ rollbackException.initCause(_rollbackOnlyCallerStacktrace);
+ }
+ throw rollbackException;
}
catch (org.omg.CORBA.NO_PERMISSION e5)
{
@@ -1870,6 +1880,8 @@
private final boolean _xaTransactionTimeoutEnabled ;
private Map _txLocalResources;
+ private Throwable _rollbackOnlyCallerStacktrace;
+
/**
* Count of last resources seen in this transaction.
*/
More information about the jboss-svn-commits
mailing list