java.lang.IllegalStateException: there is already a writer h
mindflyer Mar 22, 2007 12:10 PMI have problem with JBossCache 1.4.1.SP3 (and JBoss 4.0.5.ga with hibernate 3.2.2.ga)
I configured optimistic mode and catched exception:
DEBUG [org.jboss.cache.interceptors.OptimisticLockingInterceptor] Caught exception attempting to lock nodes java.lang.IllegalStateException: there is already a writer holding the lock: GlobalTransaction:<null>:2311 at org.jboss.cache.lock.LockMap.setWriterIfNotNull(LockMap.java:96) at org.jboss.cache.lock.IdentityLock.acquireWriteLock(IdentityLock.java:208) at org.jboss.cache.Node.acquireWriteLock(Node.java:529) at org.jboss.cache.Node.acquire(Node.java:476) at org.jboss.cache.interceptors.OptimisticLockingInterceptor.lockNodes(OptimisticLockingInterceptor.java:153) at org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:80) at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68) at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:873) at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1138) at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75) at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1491) at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1110) at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:324) at org.jboss.tm.TxManager.commit(TxManager.java:240) at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:369) at org.jboss.cache.interceptors.TxInterceptor.invoke(TxInterceptor.java:160) at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68) at org.jboss.cache.interceptors.CacheMgmtInterceptor.invoke(CacheMgmtInterceptor.java:157) at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:5863) at org.jboss.cache.TreeCache.put(TreeCache.java:3833) at org.jboss.cache.TreeCache.put(TreeCache.java:3507) at org.hibernate.cache.OptimisticTreeCache.writeLoad(OptimisticTreeCache.java:84) at org.hibernate.cache.TransactionalCache.put(TransactionalCache.java:55) at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:156) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842) at org.hibernate.loader.Loader.doQuery(Loader.java:717) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) at org.hibernate.loader.Loader.doList(Loader.java:2211) at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2127) at org.hibernate.loader.Loader.list(Loader.java:2087) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) at net.uk.topdog.td2.common.dao.server.PersistentUnTypedEmfDAO.getCollection(PersistentUnTypedEmfDAO.java:316)
I found similar problem http://jira.jboss.com/jira/browse/JBCACHE-740
and see Fix Version/s: 2.0.0.BETA1.
The page http://labs.jboss.com/portal/jbosscache/compatibility/index.html tells that JBossCache2 is compatible only with JBoss5. Is it true?
I can't use JBoss5 now and want to use optimistic locking very much :)
Does anyone know if this problem is gonna be fixed in version 1.4.x?