I have a JBC 3 cache instance configured to use a JTA transactionManager. Assuming that I
have configured the cache instance properly, is it possible for a MVCCInvocationContext
NOT to have reference to MVCCTransactionContext while thread of execution is inside
MVCCInvocationContext.lookUpNode(fqn)?
Specifically, a thread is inside MVCCInvocationContext.lookUpNode(fqn) and mvccTx is
(sometimes) null. See sample call stack below.
If this is NOT a valid state, does that mean that JBC isn't "seeing" my JTA
txManager - ie I have a config problem?
If it is a valid state, please explain why so.
Here's a call stack:
anonymous wrote :
|
org.jboss.cache.invocation.MVCCInvocationContext.lookUpNode(MVCCInvocationContext.java:64)
| org.jboss.cache.commands.write.PutKeyValueCommand.perform(PutKeyValueCommand.java:78)
| org.jboss.cache.interceptors.CallInterceptor.invokeCommand(CallInterceptor.java:108)
|
org.jboss.cache.interceptors.CallInterceptor.handleAlterCacheMethod(CallInterceptor.java:173)
|
org.jboss.cache.interceptors.CallInterceptor.visitPutForExternalReadCommand(CallInterceptor.java:137)
|
org.jboss.cache.commands.write.PutForExternalReadCommand.acceptVisitor(PutForExternalReadCommand.java:72)
|
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
|
org.jboss.cache.interceptors.MVCCLockingInterceptor.handlePutForExternalReadCommand(MVCCLockingInterceptor.java:110)
|
org.jboss.cache.interceptors.base.PrePostProcessingCommandInterceptor.visitPutForExternalReadCommand(PrePostProcessingCommandInterceptor.java:101)
|
org.jboss.cache.commands.write.PutForExternalReadCommand.acceptVisitor(PutForExternalReadCommand.java:72)
|
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
|
org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:131)
|
org.jboss.cache.commands.AbstractVisitor.visitPutForExternalReadCommand(AbstractVisitor.java:70)
|
org.jboss.cache.commands.write.PutForExternalReadCommand.acceptVisitor(PutForExternalReadCommand.java:72)
|
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
|
org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:261)
| org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:250)
|
org.jboss.cache.commands.AbstractVisitor.visitPutForExternalReadCommand(AbstractVisitor.java:70)
|
org.jboss.cache.commands.write.PutForExternalReadCommand.acceptVisitor(PutForExternalReadCommand.java:72)
|
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
|
org.jboss.cache.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:108)
|
org.jboss.cache.interceptors.CacheMgmtInterceptor.visitPutForExternalReadCommand(CacheMgmtInterceptor.java:102)
|
org.jboss.cache.commands.write.PutForExternalReadCommand.acceptVisitor(PutForExternalReadCommand.java:72)
|
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
|
org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:178)
|
org.jboss.cache.interceptors.InvocationContextInterceptor.visitPutForExternalReadCommand(InvocationContextInterceptor.java:76)
|
org.jboss.cache.commands.write.PutForExternalReadCommand.acceptVisitor(PutForExternalReadCommand.java:72)
| org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:287)
|
org.jboss.cache.invocation.CacheInvocationDelegate.putForExternalRead(CacheInvocationDelegate.java:459)
| org.hibernate.cache.jbc2.util.CacheHelper.putForExternalRead(CacheHelper.java:295)
| org.hibernate.cache.jbc2.util.CacheHelper.putForExternalRead(CacheHelper.java:268)
|
org.hibernate.cache.jbc2.access.TransactionalAccessDelegate.putFromLoad(TransactionalAccessDelegate.java:80)
|
org.hibernate.cache.jbc2.collection.TransactionalAccess.putFromLoad(TransactionalAccess.java:98)
|
org.hibernate.engine.loading.CollectionLoadContext.addCollectionToCache(CollectionLoadContext.java:333)
|
org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:279)
|
org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:245)
|
org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:218)
| org.hibernate.loader.Loader.endCollectionLoad(Loader.java:900)
| org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:888)
| org.hibernate.loader.Loader.doQuery(Loader.java:752)
| org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
| org.hibernate.loader.Loader.loadCollection(Loader.java:2015)
| org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:59)
|
org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:587)
|
org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
| org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1743)
|
org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
|
org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
|
org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:131)
| org.hibernate.collection.PersistentSet.isEmpty(PersistentSet.java:169)
| com.doppelganger.domain.User.getCurrentUserSession(User.java:306)
|
com.doppelganger.framework.cache.LocalCacheTest$1.doInTransactionWithException(LocalCacheTest.java:62)
|
com.doppelganger.test.service.impl.DgTxAnnotationDependingTemplate.executeWithException(DgTxAnnotationDependingTemplate.java:22)
| sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
|
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
|
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
|
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
|
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
|
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
|
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)
| com.doppelganger.service.tx.TxRetryAspect.doRetryIfNeeded(TxRetryAspect.java:114)
|
com.doppelganger.service.tx.TxRetryAspect.retryIfNeededForTxAnnotation(TxRetryAspect.java:90)
| sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
|
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
|
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
|
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)
|
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
|
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
|
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
|
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
| $Proxy182.executeWithException
|
com.doppelganger.framework.cache.LocalCacheTest.testPutForExternalPutRemoveInTx1_readInTx2(LocalCacheTest.java:56)
| sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| junit.framework.TestCase.runTest(TestCase.java:168)
| junit.framework.TestCase.runBare(TestCase.java:134)
| org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76)
| junit.framework.TestResult$1.protect(TestResult.java:110)
|
thanks
-nikita
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4215969#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...