aha! So there *is* another thread at work - at least in this test environment. Look in createCache():
createCache(UnitTestConfigurationFactory.createConfiguration(Configuration.CacheMode.LOCAL, true); //true==some eviction policy That's why when I break in ctx.lookUpNode, I see the following stack running on a thread called "EvictionTimer-0". this certainly explains why stepping through with a debugger alters results: anonymous wrote : org.jboss.cache.invocation.MVCCInvocationContext.lookUpNode(MVCCInvocationContext.java:76) | org.jboss.cache.commands.write.EvictCommand.lookupForEviction(EvictCommand.java:168) | org.jboss.cache.commands.write.EvictCommand.perform(EvictCommand.java:93) | org.jboss.cache.interceptors.CallInterceptor.invokeCommand(CallInterceptor.java:108) | org.jboss.cache.interceptors.CallInterceptor.handleDefault(CallInterceptor.java:99) | org.jboss.cache.commands.AbstractVisitor.visitEvictFqnCommand(AbstractVisitor.java:85) | org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:173) | org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) | org.jboss.cache.interceptors.EvictionInterceptor.visitEvictFqnCommand(EvictionInterceptor.java:80) | org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:173) | org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) | org.jboss.cache.interceptors.MVCCLockingInterceptor.handleEvictFqnCommand(MVCCLockingInterceptor.java:141) | org.jboss.cache.interceptors.base.PrePostProcessingCommandInterceptor.visitEvictFqnCommand(PrePostProcessingCommandInterceptor.java:185) | org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:173) | 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.visitEvictFqnCommand(AbstractVisitor.java:85) | org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:173) | 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.visitEvictFqnCommand(AbstractVisitor.java:85) | org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:173) | org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) | org.jboss.cache.interceptors.CacheMgmtInterceptor.visitEvictFqnCommand(CacheMgmtInterceptor.java:65) | org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:173) | org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) | org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:178) | org.jboss.cache.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:130) | org.jboss.cache.commands.AbstractVisitor.visitEvictFqnCommand(AbstractVisitor.java:85) | org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:173) | org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:287) | org.jboss.cache.invocation.CacheInvocationDelegate.evict(CacheInvocationDelegate.java:370) | org.jboss.cache.invocation.CacheInvocationDelegate.evict(CacheInvocationDelegate.java:374) | org.jboss.cache.eviction.DefaultEvictionActionPolicy.evict(DefaultEvictionActionPolicy.java:50) | org.jboss.cache.eviction.BaseEvictionAlgorithm.evictCacheNode(BaseEvictionAlgorithm.java:265) | org.jboss.cache.eviction.LRUAlgorithm.evict(LRUAlgorithm.java:121) | org.jboss.cache.eviction.LRUAlgorithm.prune(LRUAlgorithm.java:153) | org.jboss.cache.eviction.BaseEvictionAlgorithm.process(BaseEvictionAlgorithm.java:146) | org.jboss.cache.RegionImpl.processEvictionQueues(RegionImpl.java:128) | org.jboss.cache.eviction.EvictionTimerTask.handleRegion(EvictionTimerTask.java:115) | org.jboss.cache.eviction.EvictionTimerTask.processRegions(EvictionTimerTask.java:107) | org.jboss.cache.eviction.EvictionTimerTask.access$100(EvictionTimerTask.java:42) | org.jboss.cache.eviction.EvictionTimerTask$Task.run(EvictionTimerTask.java:133) | java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) | java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) | java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) | java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) | java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) | java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) | java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) | java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) | java.lang.Thread.run(Thread.java:619) Now, i'll try to see what happens if I don't use an eviction policy (as, i think, is the case in our app).. View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4217097#4217097 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4217097 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user