class org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener<K, V> implements org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener<K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener
  super_class: java.lang.Object
{
  private final org.ehcache.core.events.StoreEventDispatcher<K, V> eventDispatcher;
    descriptor: Lorg/ehcache/core/events/StoreEventDispatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;

  private final org.ehcache.core.statistics.OperationObserver<org.ehcache.core.statistics.StoreOperationOutcomes$EvictionOutcome> evictionObserver;
    descriptor: Lorg/ehcache/core/statistics/OperationObserver;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/ehcache/core/statistics/OperationObserver<Lorg/ehcache/core/statistics/StoreOperationOutcomes$EvictionOutcome;>;

  private volatile org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener<K, V> invalidationListener;
    descriptor: Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener<TK;TV;>;

  private void <init>(org.ehcache.core.events.StoreEventDispatcher<K, V>, org.ehcache.core.statistics.OperationObserver<org.ehcache.core.statistics.StoreOperationOutcomes$EvictionOutcome>);
    descriptor: (Lorg/ehcache/core/events/StoreEventDispatcher;Lorg/ehcache/core/statistics/OperationObserver;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener this
        start local 1 // org.ehcache.core.events.StoreEventDispatcher eventDispatcher
        start local 2 // org.ehcache.core.statistics.OperationObserver evictionObserver
         0: .line 1200
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1201
            aload 0 /* this */
            aload 1 /* eventDispatcher */
            putfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.eventDispatcher:Lorg/ehcache/core/events/StoreEventDispatcher;
         2: .line 1202
            aload 0 /* this */
            aload 2 /* evictionObserver */
            putfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.evictionObserver:Lorg/ehcache/core/statistics/OperationObserver;
         3: .line 1204
            getstatic org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore.NULL_INVALIDATION_LISTENER:Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener;
            astore 3 /* nullInvalidationListener */
        start local 3 // org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener nullInvalidationListener
         4: .line 1205
            aload 0 /* this */
            aload 3 /* nullInvalidationListener */
            putfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.invalidationListener:Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener;
         5: .line 1206
            return
        end local 3 // org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener nullInvalidationListener
        end local 2 // org.ehcache.core.statistics.OperationObserver evictionObserver
        end local 1 // org.ehcache.core.events.StoreEventDispatcher eventDispatcher
        end local 0 // org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    6     0                      this  Lorg/ehcache/impl/internal/store/offheap/AbstractOffHeapStore$BackingMapEvictionListener<TK;TV;>;
            0    6     1           eventDispatcher  Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;
            0    6     2          evictionObserver  Lorg/ehcache/core/statistics/OperationObserver<Lorg/ehcache/core/statistics/StoreOperationOutcomes$EvictionOutcome;>;
            4    6     3  nullInvalidationListener  Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener<TK;TV;>;
    Signature: (Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;Lorg/ehcache/core/statistics/OperationObserver<Lorg/ehcache/core/statistics/StoreOperationOutcomes$EvictionOutcome;>;)V
    MethodParameters:
                  Name  Flags
      eventDispatcher   
      evictionObserver  

  public void setInvalidationListener(org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener<K, V>);
    descriptor: (Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener this
        start local 1 // org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener invalidationListener
         0: .line 1209
            aload 1 /* invalidationListener */
            ifnonnull 2
         1: .line 1210
            new java.lang.NullPointerException
            dup
            ldc "invalidation listener cannot be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* invalidationListener */
            putfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.invalidationListener:Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener;
         3: .line 1213
            return
        end local 1 // org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener invalidationListener
        end local 0 // org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lorg/ehcache/impl/internal/store/offheap/AbstractOffHeapStore$BackingMapEvictionListener<TK;TV;>;
            0    4     1  invalidationListener  Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener<TK;TV;>;
    Signature: (Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener<TK;TV;>;)V
    MethodParameters:
                      Name  Flags
      invalidationListener  

  public void onEviction(K, org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V>);
    descriptor: (Ljava/lang/Object;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener this
        start local 1 // java.lang.Object key
        start local 2 // org.ehcache.impl.internal.store.offheap.OffHeapValueHolder value
         0: .line 1217
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.evictionObserver:Lorg/ehcache/core/statistics/OperationObserver;
            invokeinterface org.ehcache.core.statistics.OperationObserver.begin:()V
         1: .line 1218
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.eventDispatcher:Lorg/ehcache/core/events/StoreEventDispatcher;
            invokeinterface org.ehcache.core.events.StoreEventDispatcher.eventSink:()Lorg/ehcache/core/events/StoreEventSink;
            astore 3 /* eventSink */
        start local 3 // org.ehcache.core.events.StoreEventSink eventSink
         2: .line 1220
            aload 3 /* eventSink */
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface org.ehcache.core.events.StoreEventSink.evicted:(Ljava/lang/Object;Ljava/util/function/Supplier;)V
         3: .line 1221
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.eventDispatcher:Lorg/ehcache/core/events/StoreEventDispatcher;
            aload 3 /* eventSink */
            invokeinterface org.ehcache.core.events.StoreEventDispatcher.releaseEventSink:(Lorg/ehcache/core/events/StoreEventSink;)V
         4: .line 1222
            goto 7
      StackMap locals: org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener java.lang.Object org.ehcache.impl.internal.store.offheap.OffHeapValueHolder org.ehcache.core.events.StoreEventSink
      StackMap stack: java.lang.RuntimeException
         5: astore 4 /* re */
        start local 4 // java.lang.RuntimeException re
         6: .line 1223
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.eventDispatcher:Lorg/ehcache/core/events/StoreEventDispatcher;
            aload 3 /* eventSink */
            aload 4 /* re */
            invokeinterface org.ehcache.core.events.StoreEventDispatcher.releaseEventSinkAfterFailure:(Lorg/ehcache/core/events/StoreEventSink;Ljava/lang/Throwable;)V
        end local 4 // java.lang.RuntimeException re
         7: .line 1225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.invalidationListener:Lorg/ehcache/core/spi/store/tiering/CachingTier$InvalidationListener;
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener.onInvalidation:(Ljava/lang/Object;Lorg/ehcache/core/spi/store/Store$ValueHolder;)V
         8: .line 1226
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.evictionObserver:Lorg/ehcache/core/statistics/OperationObserver;
            getstatic org.ehcache.core.statistics.StoreOperationOutcomes$EvictionOutcome.SUCCESS:Lorg/ehcache/core/statistics/StoreOperationOutcomes$EvictionOutcome;
            invokeinterface org.ehcache.core.statistics.OperationObserver.end:(Ljava/lang/Enum;)V
         9: .line 1227
            return
        end local 3 // org.ehcache.core.events.StoreEventSink eventSink
        end local 2 // org.ehcache.impl.internal.store.offheap.OffHeapValueHolder value
        end local 1 // java.lang.Object key
        end local 0 // org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/ehcache/impl/internal/store/offheap/AbstractOffHeapStore$BackingMapEvictionListener<TK;TV;>;
            0   10     1        key  TK;
            0   10     2      value  Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;
            2   10     3  eventSink  Lorg/ehcache/core/events/StoreEventSink<TK;TV;>;
            6    7     4         re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.RuntimeException
    Signature: (TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;)V
    MethodParameters:
       Name  Flags
      key    
      value  

  public void onEviction(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.Object
            aload 2
            checkcast org.ehcache.impl.internal.store.offheap.OffHeapValueHolder
            invokevirtual org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener.onEviction:(Ljava/lang/Object;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Lorg/ehcache/impl/internal/store/offheap/factories/EhcacheSegmentFactory$EhcacheSegment$EvictionListener<TK;Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;>;
SourceFile: "AbstractOffHeapStore.java"
NestHost: org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore
InnerClasses:
  public abstract ValueHolder = org.ehcache.core.spi.store.Store$ValueHolder of org.ehcache.core.spi.store.Store
  public abstract InvalidationListener = org.ehcache.core.spi.store.tiering.CachingTier$InvalidationListener of org.ehcache.core.spi.store.tiering.CachingTier
  public final EvictionOutcome = org.ehcache.core.statistics.StoreOperationOutcomes$EvictionOutcome of org.ehcache.core.statistics.StoreOperationOutcomes
  BackingMapEvictionListener = org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore$BackingMapEvictionListener of org.ehcache.impl.internal.store.offheap.AbstractOffHeapStore
  public EhcacheSegment = org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment of org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory
  public abstract EvictionListener = org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment$EvictionListener of org.ehcache.impl.internal.store.offheap.factories.EhcacheSegmentFactory$EhcacheSegment