This is the test case that I was talking about on IRC. It simulates
what happens when several remote EJB calls occur using the same JTA
transaction. This case is probably common enough that we should solve it.
The workaround is to set hibernate.jta.track_by_thread=false.
On 06/24/2014 10:23 PM, Scott Marlow wrote:
I pushed a test case that simulates what can happen with remote EJB
invocations that share the same JTA transaction & EntityManager. The
"Transaction was rolled back in a different thread!" error  is thrown
but shouldn't be, since the active application thread has changed to a
different thread (which can happen). The workaround is to set
"hibernate.jta.track_by_thread" to false.
I think that we need to save the thread id at the start of every
application call into the EntityManager.
hibernate-dev mailing list