-
Bug
-
Resolution: Done
-
Major
-
7.1.1.Final, 7.1.2.Final (EAP)
-
None
If a runtime-exception thrown by an EJB v2.x application leads to javax.ejb.TransactionRolledbackLocalException (s. org.jboss.as.ejb3.tx.CMTTxInterceptor.handleInCallerTx(...)), the TransactionRolledbackLocalException doesn't reference the originating exception (either as getCause() or as getCausedByException()).
The originating exception gets in org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories.LOCAL_INSTANCE lost: the javax.ejb.EJBTransactionRolledbackException catched here does still contain it, it will, however, not be propagated to the javax.ejb.TransactionRolledbackLocalException created here.
This behavior also deviates from that in the case of a locally started transaction: the wrapping javax.ejb.EJBException (s. org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(...)) is thrown unchanged to the caller (s. org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories.LOCAL_INSTANCE) and it references the originating exception both as getCause() and as getCausedByException().