[jboss-user] [EJB/JBoss] - JBoss 5.1 regression: ArjunaJTA loses stack trace

kennardconsulting do-not-reply at jboss.com
Wed Jun 24 01:46:41 EDT 2009

There's some code in com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple that says...

// 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:");
  | }

...this seems to partner with some other code that says...

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;

...so we are attaching an empty Throwable with the text 'setRollbackOnly called from:' to the bottom of the stack trace. Contrary to the comments, this does not appear a useful debug aid. Rather, the 'deferredThrowable' might be more useful.

In JBoss 4.2.3.GA the bottom of the stacktrace contained something useful (such as the SQL error that caused the rollback).

Is this a bug?



View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4239599#4239599

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4239599

More information about the jboss-user mailing list