2 Replies Latest reply on Feb 23, 2015 5:10 AM by jkreutzfeld

    NullPointerException in LevelDBStore

    jkreutzfeld

      Hi everyone, i got redirect here from the ModeShape forums and hope you can help me. I'm encountering a NPE in Infinispan with ModeShape 4.2 using the LevelDBStore with the following stacktrace:

       

      2015-02-20 13:44:17,695 | ERROR | encer-8-thread-2 | InvocationContextInterceptor    | 159 - de.doubleslash.quala.components.contentrepository.modeshape-bundle - 1.0.0.SNAPSHOT | ISPN000136: Execution error
      org.infinispan.persistence.spi.PersistenceException: java.lang.NullPointerException
        at org.infinispan.persistence.leveldb.LevelDBStore.load(LevelDBStore.java:346)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.persistence.manager.PersistenceManagerImpl.loadFromAllStores(PersistenceManagerImpl.java:430)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:263)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeededAndUpdateStats(CacheLoaderInterceptor.java:335)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.CacheLoaderInterceptor.visitGetKeyValueCommand(CacheLoaderInterceptor.java:105)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.EntryWrappingInterceptor.visitGetKeyValueCommand(EntryWrappingInterceptor.java:116)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitGetKeyValueCommand(PessimisticLockingInterceptor.java:72)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:74)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:226)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:221)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.CacheMgmtInterceptor.visitGetKeyValueCommand(CacheMgmtInterceptor.java:92)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:73)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:74)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.CacheImpl.get(CacheImpl.java:377)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.CacheImpl.get(CacheImpl.java:369)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.schematic.internal.CacheSchematicDb.get(CacheSchematicDb.java:72)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.cache.document.LocalDocumentStore.get(LocalDocumentStore.java:71)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.cache.document.WorkspaceCache.documentFor(WorkspaceCache.java:180)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.cache.document.WorkspaceCache.documentFor(WorkspaceCache.java:199)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.cache.document.WorkspaceCache.persistedCache(WorkspaceCache.java:406)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.cache.document.WritableSessionCache.lockNodes(WritableSessionCache.java:1379)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:598)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.RepositoryLockManager.lock(RepositoryLockManager.java:319)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.JcrLockManager.lock(JcrLockManager.java:273)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.JcrLockManager.lock(JcrLockManager.java:237)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at de.doubleslash.contentrepository.common.iface.util.LockingUtil.lock(LockingUtil.java:77)[157:de.doubleslash.quala.components.contentrepository.common:7.0.0.SNAPSHOT]
        at de.doubleslash.contentrepository.thumbnailsequencer.iface.ThumbnailSequencer.execute(ThumbnailSequencer.java:99)[164:de.doubleslash.quala.components.contentrepository.thumbnail-sequencer:1.0.0.SNAPSHOT]
        at org.modeshape.jcr.SequencingRunner.run(SequencingRunner.java:184)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_51]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_51]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_51]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_51]
        at java.lang.Thread.run(Thread.java:744)[:1.7.0_51]
      Caused by: java.lang.NullPointerException
        at org.iq80.leveldb.impl.DbImpl.get(DbImpl.java:577)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.iq80.leveldb.impl.DbImpl.get(DbImpl.java:551)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        at org.infinispan.persistence.leveldb.LevelDBStore.load(LevelDBStore.java:337)[159:de.doubleslash.quala.components.contentrepository.modeshape-bundle:1.0.0.SNAPSHOT]
        ... 48 more
      
      

       

      This error does not occur when using the singleFileStore. Any idea if this is a known issue?

      Unfortunately, i was not able to reproduce this in a smaller example yet.

        • 1. Re: NullPointerException in LevelDBStore
          nadirx

          Can you try using the LevelDB JNI implementation instead of the pure java one (only works on Linux || Windows)?

           

          <infinispan>
             <cache-container>
                <local-cache name="testCache">
                   <persistence passivation="false">
                      <leveldb-store path="...">
                         <expiration path="..."/>
                         <implementation type="JNI"/>
                      </leveldb-store>
                   </persistence>
                </local-cache>
             </cache-container>
          </infinispan>
          
          1 of 1 people found this helpful
          • 2. Re: NullPointerException in LevelDBStore
            jkreutzfeld

            That seems to work, the NPE does not occur with the JNI implementation.