Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-4622

NullPointerException when executing RemoveExpiredCommand


    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.0.1.CR1, 7.0.1.GA
    • 7.0.0.GA
    • None
    • None
    • EAP 7.0.1

      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(...):

         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)?

            wburns@redhat.com Will Burns
            rhn-support-bmaxwell Brad Maxwell
            0 Vote for this issue
            2 Start watching this issue