[jboss-jira] [JBoss JIRA] Commented: (JBAS-4675) TransactionLocal cannot be locked when transaction is marked rollback only
Jonathan Halliday (JIRA)
jira-events at lists.jboss.org
Wed Sep 5 12:26:11 EDT 2007
[ http://jira.jboss.com/jira/browse/JBAS-4675?page=comments#action_12375421 ]
Jonathan Halliday commented on JBAS-4675:
-----------------------------------------
This problem seems to exist because the locks are implemented using Synchronizations for state storage and it's considered an error to register a Synchronization when the transaction is not running. However, there is no longer any reason to use that implementation, so I'll drop the Synchronizations in favor of something else and remove the restriction.
> TransactionLocal cannot be locked when transaction is marked rollback only
> --------------------------------------------------------------------------
>
> Key: JBAS-4675
> URL: http://jira.jboss.com/jira/browse/JBAS-4675
> Project: JBoss Application Server
> Issue Type: Sub-task
> Security Level: Public(Everyone can see)
> Components: Transaction Manager
> Affects Versions: JBossAS-4.2.1.GA
> Reporter: Adrian Brock
> Assigned To: Jonathan Halliday
> Priority: Critical
> Fix For: JBossAS-5.0.0.Beta3, JBossAS-4.2.2.GA
>
>
> Related to the parent issue, the proposed fix does not work in jboss-4.2.x because
> the transaction local cannot be locked when the status is ABORT.
> Here's the stacktrace of the error:
> 2007-09-05 17:50:44,899 DEBUG [org.jboss.resource.connectionmanager.CachedConnectionManager] Unable to synchronize with transaction
> java.lang.IllegalStateException: Transaction not active
> at com.arjuna.ats.jbossatx.TransactionLocalDelegateImpl.lock(TransactionLocalDelegateImpl.java:119)
> at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.lock(BaseTransactionManagerDelegate.java:200)
> at org.jboss.tm.TransactionLocal.lock(TransactionLocal.java:120)
> at org.jboss.resource.connectionmanager.TransactionSynchronizer.lock(TransactionSynchronizer.java:223)
> at org.jboss.resource.connectionmanager.CachedConnectionManager.getCloseConnectionSynchronization(CachedConnectionManager.java:550)
> at org.jboss.resource.connectionmanager.CachedConnectionManager.unregisterConnection(CachedConnectionManager.java:315)
> at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.connectionClosed(TxConnectionManager.java:622)
> at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.closeHandle(BaseWrapperManagedConnection.java:266)
> at org.jboss.resource.adapter.jdbc.WrappedConnection.close(WrappedConnection.java:129)
> You shouldn't be able to create a new delegate if the transaction is not active,
> but you should be able to retrieve existing ones.
--
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
More information about the jboss-jira
mailing list