Bugs item #938296, was opened at 2004-04-20 04:57
Message generated for change (Comment added) made by loubyansky
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=938296&group_id=22866
Category: JBossTX
Group: v3.2
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Tom Davies (tomdavies)
Assigned to: Alexey Loubyansky (loubyansky)
Summary: beforeCompletion called on rollback()
Initial Comment:
JBoss calls the beforeCompletion() method on
javax.transaction.Synchronization callback objects when
a transaction is rolled back.
This is incorrect. The JTA spec says:
'The Synchronization.beforeCompletion method is called
prior to the start
of the two-phase transaction commit process. This call
is executed with the
transaction context of the transaction that is being
committed.'
and the change history of the spec says:
'Interface javax.transaction.Synchronization, method
beforeCompletion, change the following phrase in the
description "start of
the transaction completion process" to "start of the two-
phase transaction
commit process".'
Here's an example stack trace extract from 3.2.4RC1
(the behaviour is the same in 3.2.2 and 3.2.3).
kodo.runtime.PersistenceManagerImpl implements
Synchronization.
...
at
kodo.runtime.PersistenceManagerImpl.beforeCompletion
(PersistenceManagerImpl.java:650)
at
org.jboss.tm.TransactionImpl.doBeforeCompletion
(TransactionImpl.java:1308)
at org.jboss.tm.TransactionImpl.rollback
(TransactionImpl.java:456)
at
org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction
(TxInterceptorCMT.java:436)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransacti
ons(TxInterceptorCMT.java:323)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke
(TxInterceptorCMT.java:147)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke
(SecurityInterceptor.java:118)
at org.jboss.ejb.plugins.LogInterceptor.invoke
(LogInterceptor.java:191)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invok
e(ProxyFactoryFinderInterceptor.java:122)
at
org.jboss.ejb.StatelessSessionContainer.internalInvoke
(StatelessSessionContainer.java:331)
at org.jboss.ejb.Container.invoke
(Container.java:713)
at
sun.reflect.GeneratedMethodAccessor131.invoke
(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke
(Method.java:324)
at
org.jboss.mx.server.ReflectedDispatcher.dispatch
(ReflectedDispatcher.java:72)
at org.jboss.mx.server.Invocation.dispatch
(Invocation.java:45)
at org.jboss.mx.server.Invocation.invoke
(Invocation.java:70)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke
(AbstractMBeanInvoker.java:187)
at org.jboss.mx.server.MBeanServerImpl.invoke
(MBeanServerImpl.java:480)
at
org.jboss.invocation.local.LocalInvoker.invoke
(LocalInvoker.java:101)
at
org.jboss.invocation.InvokerInterceptor.invoke
(InvokerInterceptor.java:90)
at
org.jboss.proxy.TransactionInterceptor.invoke
(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke
(SecurityInterceptor.java:45)
at
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke
(StatelessSessionInterceptor.java:100)
at org.jboss.proxy.ClientContainer.invoke
(ClientContainer.java:85)
at $Proxy52.executeCommand(Unknown
Source)
----------------------------------------------------------------------
>Comment By: Alexey Loubyansky (loubyansky)
Date: 2004-04-20 14:53
Message:
Logged In: YES
user_id=543482
It should be fine. If tx commits then beforeCompletion is
called and the state is invalidated. If tx rolls back then
the instance will be thrown away from the cache, so there is
no need to invalidate the state.
Thanks.
----------------------------------------------------------------------
Comment By: Adrian Brock (ejort)
Date: 2004-04-20 08:07
Message:
Logged In: YES
user_id=9459
This has been fixed for 3.2.4RC2
But we need to check that the CMR field invalidation on a
rollback
is handled by the normal entity bean invalidation, Alex?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=938296&group_id=22866
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development