[
http://jira.jboss.com/jira/browse/JBCACHE-1361?page=all ]
Manik Surtani resolved JBCACHE-1361.
------------------------------------
Resolution: Done
NPE in DataContainerImpl.getNodesForEviction()
----------------------------------------------
Key: JBCACHE-1361
URL:
http://jira.jboss.com/jira/browse/JBCACHE-1361
Project: JBoss Cache
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Eviction
Affects Versions: 2.2.0.CR2
Reporter: Brian Stansberry
Assigned To: Manik Surtani
Fix For: 2.2.0.GA
Call to recursively evict a subtree fails with an NPE:
2008-06-03 21:05:13,419 ERROR [org.jboss.web.tomcat.service.session.JBossCacheManager]
processExpires(): failed expiring 2 with exception: java.lang.NullPointerException
java.lang.NullPointerException
at
org.jboss.cache.DataContainerImpl.recursiveAddEvictionNodes(DataContainerImpl.java:267)
at org.jboss.cache.DataContainerImpl.getNodesForEviction(DataContainerImpl.java:241)
at
org.jboss.cache.interceptors.PassivationInterceptor.visitEvictFqnCommand(PassivationInterceptor.java:54)
at org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:88)
at
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
at
org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
at
org.jboss.cache.commands.AbstractVisitor.visitEvictFqnCommand(AbstractVisitor.java:55)
at org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:88)
at
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
at
org.jboss.cache.interceptors.PessimisticLockInterceptor.handleEvictFqnCommand(PessimisticLockInterceptor.java:303)
at
org.jboss.cache.interceptors.base.PostProcessingCommandInterceptor.visitEvictFqnCommand(PostProcessingCommandInterceptor.java:138)
at org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:88)
at
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
at
org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
at
org.jboss.cache.commands.AbstractVisitor.visitEvictFqnCommand(AbstractVisitor.java:55)
at org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:88)
at
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
at
org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:266)
at org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:253)
at
org.jboss.cache.commands.AbstractVisitor.visitEvictFqnCommand(AbstractVisitor.java:55)
at org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:88)
at
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
at
org.jboss.cache.interceptors.CacheMgmtInterceptor.visitEvictFqnCommand(CacheMgmtInterceptor.java:66)
at org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:88)
at
org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
at
org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:158)
at
org.jboss.cache.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:108)
at
org.jboss.cache.commands.AbstractVisitor.visitEvictFqnCommand(AbstractVisitor.java:55)
at org.jboss.cache.commands.write.EvictCommand.acceptVisitor(EvictCommand.java:88)
at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:215)
at
org.jboss.cache.invocation.CacheInvocationDelegate.evict(CacheInvocationDelegate.java:347)
at
org.jboss.web.tomcat.service.session.JBossCacheWrapper.evictSubtree(JBossCacheWrapper.java:289)
at
org.jboss.web.tomcat.service.session.JBossCacheService.evictSession(JBossCacheService.java:371)
at
org.jboss.web.tomcat.service.session.JBossCacheService.evictSession(JBossCacheService.java:361)
at
org.jboss.web.tomcat.service.session.JBossCacheManager.processSessionPassivation(JBossCacheManager.java:1777)
at
org.jboss.web.tomcat.service.session.JBossCacheManager.processExpires(JBossCacheManager.java:1542)
at
org.jboss.web.tomcat.service.session.JBossCacheManager.createSession(JBossCacheManager.java:804)
at
org.jboss.test.cluster.defaultcfg.simpleweb.test.SessionCountUnitTestCase.createAndUseSession(SessionCountUnitTestCase.java:902)
at
org.jboss.test.cluster.defaultcfg.simpleweb.test.SessionCountUnitTestCase.testStandaloneMaxSessionsWithMinIdle(SessionCountUnitTestCase.java:269)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:297)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:672)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:567)
Looks like DataContainerImpl.getNodesForEviction() is doing a peek() and passing the
result to recursiveAddEvictionNodes() even if the peek() returns null.
JBAS web session replication manages eviction itself, which is why the evict() call is
coming from the session management layer.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira