-
Bug
-
Resolution: Done
-
Major
-
8.0.2.Final
-
None
I'm running Infinispan 8.0.2 in a clustered environment with a replicated cache with a single file cache store. I'm seeing some NullPointerExceptions when Infinispan executes the RemoveExpiredCommand. Here's a snippet from the stack trace:
ISPN000136: Error executing command RemoveExpiredCommand, writing keys [...large key here...] ... Caused by: java.lang.NullPointerException: null at org.infinispan.commands.write.RemoveExpiredCommand.setParameters(RemoveExpiredCommand.java:142)
Here's RemoveExpiredCommand#setParameters(...):
@Override public void setParameters(int commandId, Object[] args) { if (commandId != COMMAND_ID) throw new IllegalStateException("Invalid method id"); int i = 0; commandInvocationId = (CommandInvocationId) args[i++]; key = args[i++]; value = args[i++]; lifespan = (long) args[i++]; }
Line 142 is the cast of assignment of args[3] to primitive type long, which is causing the NPE. lifespan is actually a Long, not a long, and the perform() method seems to anticipate null lifespans at line 72:
// If the provided lifespan is null, that means it is a store removal command, so we can't compare lifespan if (lifespan == null) {}
Could this be fixed by simply changing the cast at line 142 from (long) to (Long)?
- is cloned by
-
JBEAP-4622 NullPointerException when executing RemoveExpiredCommand
- Closed
- is incorporated by
-
ISPN-6433 Backport to 8.1.x branch
- Closed