[jboss-jira] [JBoss JIRA] Resolved: (JBCACHE-1361) NPE in DataContainerImpl.getNodesForEviction()

Manik Surtani (JIRA) jira-events at lists.jboss.org
Thu Jun 5 06:33:24 EDT 2008


     [ 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

        



More information about the jboss-jira mailing list