[jboss-user] [JBossCache] - Re: NPE when using optimistic locking with JbossCache 1.4.0.
rkrol
do-not-reply at jboss.com
Wed Jan 3 11:14:39 EST 2007
I have a similar problem with a data version class mismatch.
I work with Hibernate 3.2.1 and JBossCache 1.4.1.CR1 (both downloaded yesterday).
Hibernate configuration :
- hibernate.cache.provider_class=org.hibernate.cache.OptimisticTreeCacheProvider
- objects are cached in transactional mode (<class...> ...)
TreeCache configuration is the hibernate-recommended-config.xml with :
- OPTIMISTIC NodeLockingScheme
- INVALIDATION_ASYNC CacheMode
My application seems to work when persistent objects are created, readed, updated... but not deleted :(
Here is the stack trace :
| java.lang.RuntimeException:
| at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1146)
| at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75)
| at org.objectweb.jotm.SubCoordinator.doBeforeCompletion(SubCoordinator.java:1520)
| at org.objectweb.jotm.SubCoordinator.commit_one_phase(SubCoordinator.java:433)
| at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:248)
| at org.objectweb.jotm.Current.commit(Current.java:526)
| at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:787)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:500)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:473)
| at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:266)
| at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
| at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
| at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
| at $Proxy2.supprimerCatalogue(Ljava.lang.String;)V(Unknown Source)
| at clara.prototype.applicatif.hibernatoo.impl.GererCataloguesImpl.supprimerCatalogue(GererCataloguesImpl.java:90)
| at clara.prototype.presentation.strutsoo.gerercatalogues.SupprimerCatalogueAction.execute(SupprimerCatalogueAction.java:63)
| at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
| at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
| at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
| at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
| at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
| at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
| at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
| at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
| at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
| at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
| Caused by: org.jboss.cache.optimistic.DataVersioningException: Attempting to apply data version of type class org.hibernate.cache.OptimisticTreeCache$
| NonLockingDataVersion to a node [fqn = /clara/prototype/persistant/hibernatoo/Catalogue/clara.prototype.persistant.hibernatoo.Catalogue#9] that already contains version of type class org.hibernate.cache.OptimisticTreeCache$DataVersionAdapter
| at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.simpleValidate(OptimisticValidatorInterceptor.java:144)
| at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.validateNodes(OptimisticValidatorInterceptor.java:110)
| at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.invoke(OptimisticValidatorInterceptor.java:75)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
| at org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:99)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
| at org.jboss.cache.interceptors.InvalidationInterceptor.invoke(InvalidationInterceptor.java:60)
| at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
| at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:859)
| at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1124)
| at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75)
| at org.objectweb.jotm.SubCoordinator.doBeforeCompletion(SubCoordinator.java:1520)
| at org.objectweb.jotm.SubCoordinator.commit_one_phase(SubCoordinator.java:433)
| at org.objectweb.jotm.TransactionImpl.commit(TransactionImpl.java:248)
| at org.objectweb.jotm.Current.commit(Current.java:526)
| at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:787)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:500)
| at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:473)
| at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:266)
| at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
| at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
| at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
| at $Proxy2.supprimerCatalogue(Ljava.lang.String;)V(Unknown Source)
| at clara.prototype.applicatif.hibernatoo.impl.GererCataloguesImpl.supprimerCatalogue(GererCataloguesImpl.java:90)
| at clara.prototype.presentation.strutsoo.gerercatalogues.SupprimerCatalogueAction.execute(SupprimerCatalogueAction.java:63)
| at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
| at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
| at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
| at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
|
I've tried different CacheMode(INVALIDATION_SYNC, REPL_ASYNC, and REPL_SYNC) because of JBCACHE-806, but the same exception appears in all cases.
May be I've forget somehting on the configuration...
What solution do you propose ?
PS : My application works if Hibernate and JBC are configured in Pessimistic mode (hibernate.cache.provider_class=org.hibernate.cache.TreeCacheProvider, NodeLockingScheme=PESSIMISTIC)
Thanks.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3997600#3997600
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3997600
More information about the jboss-user
mailing list