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

Simple cache with statistics enabled results in NullPointerException in EvictionManagerImpl

    XMLWordPrintable

Details

    • Hide

      Here is an example Infinispan configuration. Put entries into the cache until you reach the eviction limit and the exception will occur.

      <?xml version="1.0" encoding="UTF-8"?>
      <infinispan
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
              xmlns="urn:infinispan:config:9.4">
      
      	<cache-container name="default" statistics="true">
      		<local-cache name="example" simple-cache="true" statistics="true">
      			<transaction mode="NONE" />
      			<memory>
      				<object size="10" strategy="LRU" />
      			</memory>
      		</local-cache>
      	</cache-container>
      	
      </infinispan>
      
      Show
      Here is an example Infinispan configuration. Put entries into the cache until you reach the eviction limit and the exception will occur. <?xml version= "1.0" encoding= "UTF-8" ?> <infinispan xmlns:xsi= "http: //www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "urn:infinispan:config:9.4 http: //www.infinispan.org/schemas/infinispan-config-9.4.xsd" xmlns= "urn:infinispan:config:9.4" > <cache-container name= " default " statistics= " true " > <local-cache name= "example" simple-cache= " true " statistics= " true " > <transaction mode= "NONE" /> <memory> <object size= "10" strategy= "LRU" /> </memory> </local-cache> </cache-container> </infinispan>

    Description

      A simple-cache with statistics enabled and an eviction policy results in a NullPointerException when eviction occurs.

      java.lang.NullPointerException
      	at org.infinispan.eviction.impl.EvictionManagerImpl.updateEvictionStatistics(EvictionManagerImpl.java:45)
      	at org.infinispan.eviction.impl.EvictionManagerImpl.onEntryEviction(EvictionManagerImpl.java:39)
      	at org.infinispan.container.impl.AbstractInternalDataContainer$DefaultEvictionListener.onEntryEviction(AbstractInternalDataContainer.java:510)
      	at org.infinispan.container.impl.AbstractInternalDataContainer.lambda$applyListener$5(AbstractInternalDataContainer.java:473)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$notifyRemoval$1(BoundedLocalCache.java:286)
      	at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:20)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.notifyRemoval(BoundedLocalCache.java:292)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.evictEntry(BoundedLocalCache.java:821)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.evictFromMain(BoundedLocalCache.java:638)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.evictEntries(BoundedLocalCache.java:504)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.maintenance(BoundedLocalCache.java:1137)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.performCleanUp(BoundedLocalCache.java:1108)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask.run(BoundedLocalCache.java:2979)
      	at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:20)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.scheduleDrainBuffers(BoundedLocalCache.java:1080)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.scheduleAfterWrite(BoundedLocalCache.java:1047)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.afterWrite(BoundedLocalCache.java:1017)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.remap(BoundedLocalCache.java:2272)
      	at com.github.benmanes.caffeine.cache.BoundedLocalCache.compute(BoundedLocalCache.java:2146)
      	at com.github.benmanes.caffeine.cache.LocalCache.compute(LocalCache.java:100)
      	at org.infinispan.container.impl.AbstractInternalDataContainer.compute(AbstractInternalDataContainer.java:223)
      	at org.infinispan.container.impl.AbstractInternalDataContainer.compute(AbstractInternalDataContainer.java:242)
      	at org.infinispan.cache.impl.SimpleCacheImpl.putForExternalReadInternal(SimpleCacheImpl.java:207)
      	at org.infinispan.cache.impl.StatsCollectingCache.putForExternalReadInternal(StatsCollectingCache.java:200)
      	at org.infinispan.cache.impl.SimpleCacheImpl.putForExternalRead(SimpleCacheImpl.java:180)
      	at org.infinispan.cache.impl.AbstractDelegatingCache.putForExternalRead(AbstractDelegatingCache.java:49)
      	at org.infinispan.cache.impl.EncoderCache.putForExternalRead(EncoderCache.java:175)
      	at org.infinispan.hibernate.cache.commons.access.InvalidationCacheAccessDelegate.putFromLoad(InvalidationCacheAccessDelegate.java:114)
      	at org.infinispan.hibernate.cache.v51.entity.ReadOnlyAccess.putFromLoad(ReadOnlyAccess.java:54)
      	at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:219)
      	at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:125)
      	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1139)
      

      Attachments

        Issue Links

          Activity

            People

              dberinde@redhat.com Dan Berindei (Inactive)
              karlvr Karl von Randow (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: