Transaction not rolled back by Work if exception is thrown during UTTransaction.begin
-------------------------------------------------------------------------------------
Key: JBSEAM-3898
URL:
https://jira.jboss.org/jira/browse/JBSEAM-3898
Project: Seam
Issue Type: Bug
Components: Core
Reporter: Clint Popetz
Attachments: Work.java.diff
The Work class doesn't rollback if an exception is thrown during
UTTransaction.begin(), which can happen if getSynchronizations().afterTransactionBegin()
dies.
This can happen in an EJB3 environment, even though the method on EjbSynchronizations does
nothing, because EjbSynchronizations is a SFSB, and for example there are classloading
bugs for SFSBs in Quartz threads, which lead to
spurious exceptions. When using jta, this means the tx for the async thread is left
open, and eventually times out, but is never rolled back. When subsequent async jobs use
that thread, all tx operations will fail because the tx exists but is aborted.
I think that the try block should start before the call to begin().
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira