-
Sub-task
-
Resolution: Done
-
Critical
-
JBossAS-4.2.1.GA
-
None
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.