|
Ultimately the issue here is a "feature" of WebLogic's TM. The bottom line is that Hibernate calls setRollbackOnly to make sure that the transaction will not complete successfully. In this particular report, Hibernate also later throws an exception back to the JTA system during beforeCompletion phase.
WebLogic just seems to deal with this in an odd fashion. It seems to treat the setRollbackOnly call itself as an error condition. Nothing in the JTA spec that I see (although the JTA spec is terribly difficult to "read" because it relies on multiple other transaction specs as "base knowledge") indicates that this is a reasonable outcome. Let me ask the JBoss Transaction folks their opinion in general on calling setRollbackOnly from within a beforeCompletion callback. I know the JBoss Transaction folks have done a lot of work to make setRollbackOnly work in a "sane" fashion; its a tricky feature.
|