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?

Regards,

Richard.

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
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to