I'm using JBossCache 1.01 with Hibernate. The IsolationLevel I'm using is NONE. I got this NPE:
2004-06-12 15:41:19,348 ERROR [UpHandler (GMS)] org.jboss.cache.TreeCache - getState(): failed lock ing tree java.lang.NullPointerException at org.jboss.cache.lock.IdentityLock.acquireReadLock(IdentityLock.java:175) at org.jboss.cache.Node.acquireReadLock(Node.java:346) at org.jboss.cache.Node.acquire(Node.java:331) at org.jboss.cache.Node.acquireAll(Node.java:370) at org.jboss.cache.TreeCache$MessageListenerAdaptor.getState(TreeCache.java:2438) at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.passUp(MessageDispatcher.java:576) at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:322) at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:638) at org.jgroups.JChannel.up(JChannel.java:874) at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:323) at org.jgroups.stack.ProtocolStack.receiveUpEvent(ProtocolStack.java:339) at org.jgroups.stack.Protocol.passUp(Protocol.java:489) at org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:102) at org.jgroups.stack.Protocol.receiveUpEvent(Protocol.java:437) at org.jgroups.stack.Protocol.passUp(Protocol.java:489) at org.jgroups.protocols.pbcast.GMS.up(GMS.java:582) at org.jgroups.stack.UpHandler.run(Protocol.java:60) I had to add a class called LockStrategyNone. I guess this has been on the todo list since there was a comment "FIXME Ben" in the source code of LockStrategyFactory: | if (lockingLevel_ == null || lockingLevel_ == IsolationLevel.NONE) | return null; // FIXME Ben ! | I changed this to be: | if (lockingLevel_ == null || lockingLevel_ == IsolationLevel.NONE) | return new LockStrategyNone(); | source code for LockStrategyNone : /* | * JBoss, the OpenSource J2EE webOS | * | * Distributable under LGPL license. | * See terms of license at gnu.org. | */ | package org.jboss.cache.lock; | | import EDU.oswego.cs.dl.util.concurrent.NullSync; | import EDU.oswego.cs.dl.util.concurrent.Sync; | | /** | * Transaction isolation level of None. | * | * @author Lari Hotari | * @version $Revision$ | */ | public class LockStrategyNone implements LockStrategy | { | private NullSync nullLock_; | | public LockStrategyNone() | { | nullLock_ = new NullSync(); | } | | /** | * @see org.jboss.cache.LockStrategy#readLock() | */ | public Sync readLock() | { | return nullLock_; | } | | /** | * @see org.jboss.cache.LockStrategy#upgradeLockAttempt(long) | */ | public Sync upgradeLockAttempt(long msecs) | { | return nullLock_; | } | | /** | * @see org.jboss.cache.LockStrategy#writeLock() | */ | public Sync writeLock() | { | return nullLock_; | } | } edited LockStrategyFactory : | /* | * JBoss, the OpenSource J2EE webOS | * | * Distributable under LGPL license. | * See terms of license at gnu.org. | */ | package org.jboss.cache.lock; | | /** | * Factory to create LockStragtegy instance. | * | * @author Ben Wang | */ | public class LockStrategyFactory | { | private static LockStrategyFactory s_me = null; | | | /** | * Transaction locking isolation level. Default. | */ | private static IsolationLevel lockingLevel_ = IsolationLevel.REPEATABLE_READ; | | /** | * | */ | protected LockStrategyFactory() | { | } | | public static LockStrategyFactory getInstance() | { | if (s_me == null) | s_me = new LockStrategyFactory(); | | return s_me; | } | | public LockStrategy getLockStrategy() | { | if (lockingLevel_ == null || lockingLevel_ == IsolationLevel.NONE) | return new LockStrategyNone(); | if (lockingLevel_ == IsolationLevel.REPEATABLE_READ) | return new LockStrategyRepeatableRead(); | if (lockingLevel_ == IsolationLevel.SERIALIZABLE) | return new LockStrategySerializable(); | if (lockingLevel_ == IsolationLevel.READ_COMMITTED) | return new LockStrategyReadCommitted(); | if (lockingLevel_ == IsolationLevel.READ_UNCOMMITTED) | return new LockStrategyReadUncommitted(); | throw new RuntimeException("getLockStrategy: LockStrategy selection not recognized." + | " selection: " + lockingLevel_); | } | | public static void setIsolationLevel(IsolationLevel level) | { | lockingLevel_ = level; | } | | } | View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3838621#3838621 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3838621 ------------------------------------------------------- This SF.Net email is sponsored by the new InstallShield X. >From Windows to Linux, servers to mobile, InstallShield X is the one installation-authoring solution that does it all. Learn more and evaluate today! http://www.installshield.com/Dev2Dev/0504 _______________________________________________ JBoss-Development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development