[infinispan-issues] [JBoss JIRA] Updated: (ISPN-1038) NullPointerException in L1ManagerImpl during IllegalMonitorTest

Pete Muir (JIRA) jira-events at lists.jboss.org
Sun Apr 10 12:58:33 EDT 2011


     [ https://issues.jboss.org/browse/ISPN-1038?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pete Muir updated ISPN-1038:
----------------------------

    Fix Version/s: 5.0.0.BETA2


> NullPointerException in L1ManagerImpl during IllegalMonitorTest
> ---------------------------------------------------------------
>
>                 Key: ISPN-1038
>                 URL: https://issues.jboss.org/browse/ISPN-1038
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Core API
>    Affects Versions: 5.0.0.BETA1
>            Reporter: Dan Berindei
>            Assignee: Pete Muir
>             Fix For: 5.0.0.BETA2
>
>
> I have seen NPEs with two different stack traces during tests:
> 1)
> java.lang.NullPointerException
> 	at java.util.AbstractCollection.addAll(AbstractCollection.java:320)
> 	at org.infinispan.distribution.L1ManagerImpl.buildInvalidationAddressList(L1ManagerImpl.java:100)
> 	at org.infinispan.distribution.L1ManagerImpl.flushCache(L1ManagerImpl.java:56)
> 	at org.infinispan.interceptors.DistributionInterceptor.handleWriteCommand(DistributionInterceptor.java:390)
> 	at org.infinispan.interceptors.DistributionInterceptor.visitRemoveCommand(DistributionInterceptor.java:218)
> 	at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:70)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.LockingInterceptor.visitRemoveCommand(LockingInterceptor.java:325)
> 	at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:70)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
> 	at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:63)
> 	at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:70)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:186)
> 	at org.infinispan.interceptors.TxInterceptor.visitRemoveCommand(TxInterceptor.java:139)
> 	at org.infinispan.interceptors.DistTxInterceptor.visitRemoveCommand(DistTxInterceptor.java:86)
> 	at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:70)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:95)
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:62)
> 	at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:63)
> 	at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:70)
> 	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:273)
> 	at org.infinispan.CacheDelegate.remove(CacheDelegate.java:226)
> 	at org.infinispan.distribution.IllegalMonitorTest.testScenario(IllegalMonitorTest.java:64)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:636)... Removed 11 stack frames
> 2)
> org.infinispan.CacheException: java.lang.NullPointerException
> 	at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:116)
>            ...
> 	at org.infinispan.distribution.IllegalMonitorTest.testScenario(IllegalMonitorTest.java:63)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:636)
> Caused by: java.lang.NullPointerException
> 	at org.infinispan.distribution.L1ManagerImpl.addRequestor(L1ManagerImpl.java:47)
> 	at org.infinispan.interceptors.DistributionInterceptor.visitPutKeyValueCommand(DistributionInterceptor.java:203)
> 	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.LockingInterceptor.visitPutKeyValueCommand(LockingInterceptor.java:297)
> 	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
> 	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:59)
> 	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:186)
> 	at org.infinispan.interceptors.TxInterceptor.visitPutKeyValueCommand(TxInterceptor.java:134)
> 	at org.infinispan.interceptors.DistTxInterceptor.visitPutKeyValueCommand(DistTxInterceptor.java:79)
> 	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:95)
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:62)
> 	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:59)
> 	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)
>            ...
> Looks like cleanupRequestors() should also use synchronization. 
> It might also be better to lock on the requestors map values instead of the keys, as the keys can be also locked by user code.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the infinispan-issues mailing list