Currently, we don't disassociate the calling thread from the tx when we suspend() (we just nullify the ti.tx reference) :
| public Transaction suspend() throws SystemException
| ThreadInfo ti = getThreadInfo();
| TransactionImpl current = ti.tx;
| if (current != null)
| ti.tx = null;
| if (trace)
| log.trace("suspended tx: " + current);
| if (current.isDone())
| current = null;
| return current;
On the other hand, in resume(tx) we do associate the tx with the calling thread.
By applying the policy of a thread committing only when no other threads are associated, I'm getting exception now, since the "suspended" theads are still associated. Without the policy this goes un-noticed.
Is there any reason not to add disassociateThread() in suspend()?
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3879352#3879352
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3879352