NullMarkerNodeForRemoval issue
theute Apr 21, 2010 3:16 PMThe NullMarkerNodeForRemoval object introduced to solve the following issue:
https://jira.jboss.org/jira/browse/JBCACHE-1493
is generating a NPE:
java.lang.NullPointerException at org.jboss.cache.invocation.NodeInvocationDelegate.clearDataDirect(NodeInvocationDelegate.java:243) at org.jboss.cache.commands.write.ClearDataCommand.perform(ClearDataCommand.java:79) at org.jboss.cache.interceptors.CallInterceptor.invokeCommand(CallInterceptor.java:108) at org.jboss.cache.interceptors.CallInterceptor.handleAlterCacheMethod(CallInterceptor.java:173) at org.jboss.cache.interceptors.CallInterceptor.visitClearDataCommand(CallInterceptor.java:149) at org.jboss.cache.commands.write.ClearDataCommand.acceptVisitor(ClearDataCommand.java:86) at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) at org.jboss.cache.interceptors.EvictionInterceptor.visitClearDataCommand(EvictionInterceptor.java:235) at org.jboss.cache.commands.write.ClearDataCommand.acceptVisitor(ClearDataCommand.java:86) at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) at org.jboss.cache.interceptors.MVCCLockingInterceptor.handleClearDataCommand(MVCCLockingInterceptor.java:124) at org.jboss.cache.interceptors.base.PrePostProcessingCommandInterceptor.visitClearDataCommand(PrePostProcessingCommandInterceptor.java:167) at org.jboss.cache.commands.write.ClearDataCommand.acceptVisitor(ClearDataCommand.java:86) at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) at org.jboss.cache.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:150) at org.jboss.cache.interceptors.ReplicationInterceptor.visitClearDataCommand(ReplicationInterceptor.java:137) at org.jboss.cache.commands.write.ClearDataCommand.acceptVisitor(ClearDataCommand.java:86) at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:131) at org.jboss.cache.commands.AbstractVisitor.visitClearDataCommand(AbstractVisitor.java:80) at org.jboss.cache.commands.write.ClearDataCommand.acceptVisitor(ClearDataCommand.java:86) at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) at org.jboss.cache.interceptors.TxInterceptor.replayModifications(TxInterceptor.java:501) at org.jboss.cache.interceptors.TxInterceptor.handleRemotePrepare(TxInterceptor.java:388) at org.jboss.cache.interceptors.TxInterceptor.visitPrepareCommand(TxInterceptor.java:134) at org.jboss.cache.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:68) at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:131) at org.jboss.cache.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:140) at org.jboss.cache.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:68) at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116) at org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:178) at org.jboss.cache.interceptors.InvocationContextInterceptor.visitPrepareCommand(InvocationContextInterceptor.java:106) at org.jboss.cache.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:68) at org.jboss.cache.interceptors.InterceptorChain.invokeRemote(InterceptorChain.java:316) at org.jboss.cache.commands.remote.ReplicateCommand.processSingleCommand(ReplicateCommand.java:139) at org.jboss.cache.commands.remote.ReplicateCommand.perform(ReplicateCommand.java:115) at org.jboss.cache.marshall.CommandAwareRpcDispatcher.executeCommand(CommandAwareRpcDispatcher.java:319) at org.jboss.cache.marshall.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:246) at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:637) at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:545) at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:368) at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:775) at org.jgroups.JChannel.up(JChannel.java:1336) at org.jgroups.mux.Multiplexer$Task.run(Multiplexer.java:1185) at org.jgroups.mux.Multiplexer$ExecuteTask.run(Multiplexer.java:1208) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)
We found out about this while doing more extensive QA on GateIn:
https://jira.jboss.org/jira/browse/GTNPORTAL-855
The code returning the NPE is simply:
public void clearDataDirect() { node.clear(); }
Looks like a bug, if you confirm I can create the Jira