Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-6071

NullPointerException when executing RemoveExpiredCommand

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

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

              wburns@redhat.com Will Burns
              jekh_jira Jason Hoetger (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: