[
http://jira.jboss.com/jira/browse/JBAS-4980?page=comments#action_12387893 ]
Adrian Brock commented on JBAS-4980:
------------------------------------
The suggested fix looks correct. The same problem exists in the EJB2 proxy, see the
subtask.
Additionally, the EJB2 interceptor in head has some additional changes to better
synchronize
the state of the endpoint that need porting to the EJB3 version and jboss-4.2
Without the synchronization fixes, an OS or cpu that caches memory may not see the
transaction=null change.
Calling a message endpoint twice from different transactions makes
MessageInflowLocalProxy confuse the two transactions
-----------------------------------------------------------------------------------------------------------------------
Key: JBAS-4980
URL:
http://jira.jboss.com/jira/browse/JBAS-4980
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: EJB3
Affects Versions: JBossAS-4.2.0.GA
Reporter: Marcus Nilsson
Assigned To: Carlo de Wolf
Fix For: JBossAS-5.0.0.CR1, JBossAS-4.2.3.GA
We have a resource adapter where we call an endpoint (a MessageInflowLocalProxy) twice
from two different transactions. This caused the endpoint to fail in endTransaction with
Current transaction TransactionImple < ac, BasicAction: -3f57fcde:b392:473d5904:ab
status: ActionStatus.RUNNING > is not the expected transaction
We tracked this problem down to the member variable "transaction" in
MessageInflowLocalProxy.java, which is not set to null in endTransaction. When the
endpoint is called again during a transaction, startTransaction will leave it alone,
making transaction point to the old one.
http://anonsvn.jboss.org/repos/jbossas/tags/JBoss_4_2_0_GA/ejb3/src/main/...
Suggested fix: Set transaction=null at end of transaction
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira