public class org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider extends org.ehcache.impl.store.BaseStore$BaseStoreProvider implements org.ehcache.core.spi.store.tiering.AuthoritativeTier$Provider, org.ehcache.core.spi.store.tiering.LowerCachingTier$Provider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider
  super_class: org.ehcache.impl.store.BaseStore$BaseStoreProvider
{
  private static final org.slf4j.Logger LOGGER;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.util.Set<org.ehcache.core.spi.store.Store<?, ?>> createdStores;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/ehcache/core/spi/store/Store<**>;>;

  private final java.util.Map<org.ehcache.impl.internal.store.offheap.OffHeapStore<?, ?>, org.ehcache.core.statistics.OperationStatistic<?>[]> tierOperationStatistics;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<**>;[Lorg/ehcache/core/statistics/OperationStatistic<*>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 132
            ldc Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.LOGGER:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
         0: .line 130
            aload 0 /* this */
            invokespecial org.ehcache.impl.store.BaseStore$BaseStoreProvider.<init>:()V
         1: .line 134
            aload 0 /* this */
            new org.ehcache.core.collections.ConcurrentWeakIdentityHashMap
            dup
            invokespecial org.ehcache.core.collections.ConcurrentWeakIdentityHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createdStores:Ljava/util/Set;
         2: .line 135
            aload 0 /* this */
            new org.ehcache.core.collections.ConcurrentWeakIdentityHashMap
            dup
            invokespecial org.ehcache.core.collections.ConcurrentWeakIdentityHashMap.<init>:()V
            putfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.tierOperationStatistics:Ljava/util/Map;
         3: .line 130
            return
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;

  protected org.ehcache.config.ResourceType<org.ehcache.config.SizedResourcePool> getResourceType();
    descriptor: ()Lorg/ehcache/config/ResourceType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
         0: .line 139
            getstatic org.ehcache.config.ResourceType$Core.OFFHEAP:Lorg/ehcache/config/ResourceType$Core;
            areturn
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
    Signature: ()Lorg/ehcache/config/ResourceType<Lorg/ehcache/config/SizedResourcePool;>;

  public int rank(java.util.Set<org.ehcache.config.ResourceType<?>>, java.util.Collection<org.ehcache.spi.service.ServiceConfiguration<?, ?>>);
    descriptor: (Ljava/util/Set;Ljava/util/Collection;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // java.util.Set resourceTypes
        start local 2 // java.util.Collection serviceConfigs
         0: .line 144
            aload 1 /* resourceTypes */
            getstatic org.ehcache.config.ResourceType$Core.OFFHEAP:Lorg/ehcache/config/ResourceType$Core;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // java.util.Collection serviceConfigs
        end local 1 // java.util.Set resourceTypes
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    3     1   resourceTypes  Ljava/util/Set<Lorg/ehcache/config/ResourceType<*>;>;
            0    3     2  serviceConfigs  Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;
    Signature: (Ljava/util/Set<Lorg/ehcache/config/ResourceType<*>;>;Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;)I
    MethodParameters:
                Name  Flags
      resourceTypes   final
      serviceConfigs  final

  public int rankAuthority(org.ehcache.config.ResourceType<?>, java.util.Collection<org.ehcache.spi.service.ServiceConfiguration<?, ?>>);
    descriptor: (Lorg/ehcache/config/ResourceType;Ljava/util/Collection;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.config.ResourceType authorityResource
        start local 2 // java.util.Collection serviceConfigs
         0: .line 149
            aload 1 /* authorityResource */
            getstatic org.ehcache.config.ResourceType$Core.OFFHEAP:Lorg/ehcache/config/ResourceType$Core;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // java.util.Collection serviceConfigs
        end local 1 // org.ehcache.config.ResourceType authorityResource
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    3     1  authorityResource  Lorg/ehcache/config/ResourceType<*>;
            0    3     2     serviceConfigs  Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;
    Signature: (Lorg/ehcache/config/ResourceType<*>;Ljava/util/Collection<Lorg/ehcache/spi/service/ServiceConfiguration<**>;>;)I
    MethodParameters:
                   Name  Flags
      authorityResource  
      serviceConfigs     

  public <K, V> org.ehcache.impl.internal.store.offheap.OffHeapStore<K, V> createStore(org.ehcache.core.spi.store.Store$Configuration<K, V>, org.ehcache.spi.service.ServiceConfiguration<?, ?>[]);
    descriptor: (Lorg/ehcache/core/spi/store/Store$Configuration;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        start local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
         0: .line 154
            aload 0 /* this */
            aload 1 /* storeConfig */
            new org.ehcache.impl.internal.events.ThreadLocalStoreEventDispatcher
            dup
            aload 1 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.getDispatcherConcurrency:()I
            invokespecial org.ehcache.impl.internal.events.ThreadLocalStoreEventDispatcher.<init>:(I)V
            aload 2 /* serviceConfigs */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createStoreInternal:(Lorg/ehcache/core/spi/store/Store$Configuration;Lorg/ehcache/core/events/StoreEventDispatcher;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;
            astore 3 /* store */
        start local 3 // org.ehcache.impl.internal.store.offheap.OffHeapStore store
         1: .line 156
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.tierOperationStatistics:Ljava/util/Map;
            aload 3 /* store */
            iconst_2
            anewarray org.ehcache.core.statistics.OperationStatistic
            dup
            iconst_0
         2: .line 157
            aload 0 /* this */
            aload 3 /* store */
            ldc "get"
            getstatic org.ehcache.core.statistics.TierOperationOutcomes.GET_TRANSLATION:Ljava/util/Map;
            ldc "get"
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createTranslatedStatistic:(Lorg/ehcache/impl/store/BaseStore;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/ehcache/core/statistics/OperationStatistic;
            aastore
            dup
            iconst_1
         3: .line 158
            aload 0 /* this */
            aload 3 /* store */
            ldc "eviction"
            getstatic org.ehcache.core.statistics.TierOperationOutcomes.EVICTION_TRANSLATION:Ljava/util/Map;
            ldc "eviction"
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createTranslatedStatistic:(Lorg/ehcache/impl/store/BaseStore;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/ehcache/core/statistics/OperationStatistic;
            aastore
         4: .line 156
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 161
            aload 3 /* store */
            areturn
        end local 3 // org.ehcache.impl.internal.store.offheap.OffHeapStore store
        end local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
        end local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    6     1     storeConfig  Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;
            0    6     2  serviceConfigs  [Lorg/ehcache/spi/service/ServiceConfiguration;
            1    6     3           store  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;[Lorg/ehcache/spi/service/ServiceConfiguration<**>;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
    MethodParameters:
                Name  Flags
      storeConfig     
      serviceConfigs  

  private <K, V> org.ehcache.impl.internal.store.offheap.OffHeapStore<K, V> createStoreInternal(org.ehcache.core.spi.store.Store$Configuration<K, V>, org.ehcache.core.events.StoreEventDispatcher<K, V>, org.ehcache.spi.service.ServiceConfiguration<?, ?>[]);
    descriptor: (Lorg/ehcache/core/spi/store/Store$Configuration;Lorg/ehcache/core/events/StoreEventDispatcher;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=9, locals=8, args_size=4
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        start local 2 // org.ehcache.core.events.StoreEventDispatcher eventDispatcher
        start local 3 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
         0: .line 165
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.getServiceProvider:()Lorg/ehcache/spi/service/ServiceProvider;
            ifnonnull 2
         1: .line 166
            new java.lang.NullPointerException
            dup
            ldc "ServiceProvider is null in OffHeapStore.Provider."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.getServiceProvider:()Lorg/ehcache/spi/service/ServiceProvider;
            ldc Lorg/ehcache/core/spi/time/TimeSourceService;
            invokeinterface org.ehcache.spi.service.ServiceProvider.getService:(Ljava/lang/Class;)Lorg/ehcache/spi/service/Service;
            checkcast org.ehcache.core.spi.time.TimeSourceService
            invokeinterface org.ehcache.core.spi.time.TimeSourceService.getTimeSource:()Lorg/ehcache/core/spi/time/TimeSource;
            astore 4 /* timeSource */
        start local 4 // org.ehcache.core.spi.time.TimeSource timeSource
         3: .line 170
            aload 1 /* storeConfig */
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.getResourcePools:()Lorg/ehcache/config/ResourcePools;
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.getResourceType:()Lorg/ehcache/config/ResourceType;
            invokeinterface org.ehcache.config.ResourcePools.getPoolForResource:(Lorg/ehcache/config/ResourceType;)Lorg/ehcache/config/ResourcePool;
            checkcast org.ehcache.config.SizedResourcePool
            astore 5 /* offHeapPool */
        start local 5 // org.ehcache.config.SizedResourcePool offHeapPool
         4: .line 171
            aload 5 /* offHeapPool */
            invokeinterface org.ehcache.config.SizedResourcePool.getUnit:()Lorg/ehcache/config/ResourceUnit;
            instanceof org.ehcache.config.units.MemoryUnit
            ifne 6
         5: .line 172
            new java.lang.IllegalArgumentException
            dup
            ldc "OffHeapStore only supports resources with memory unit"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 174
      StackMap locals: org.ehcache.core.spi.time.TimeSource org.ehcache.config.SizedResourcePool
      StackMap stack:
            aload 5 /* offHeapPool */
            invokeinterface org.ehcache.config.SizedResourcePool.getUnit:()Lorg/ehcache/config/ResourceUnit;
            checkcast org.ehcache.config.units.MemoryUnit
            astore 6 /* unit */
        start local 6 // org.ehcache.config.units.MemoryUnit unit
         7: .line 177
            new org.ehcache.impl.internal.store.offheap.OffHeapStore
            dup
            aload 1 /* storeConfig */
            aload 4 /* timeSource */
            aload 2 /* eventDispatcher */
            aload 6 /* unit */
            aload 5 /* offHeapPool */
         8: .line 178
            invokeinterface org.ehcache.config.SizedResourcePool.getSize:()J
         9: .line 177
            invokevirtual org.ehcache.config.units.MemoryUnit.toBytes:(J)J
        10: .line 178
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.getServiceProvider:()Lorg/ehcache/spi/service/ServiceProvider;
            ldc Lorg/ehcache/core/spi/service/StatisticsService;
            invokeinterface org.ehcache.spi.service.ServiceProvider.getService:(Ljava/lang/Class;)Lorg/ehcache/spi/service/Service;
            checkcast org.ehcache.core.spi.service.StatisticsService
        11: .line 177
            invokespecial org.ehcache.impl.internal.store.offheap.OffHeapStore.<init>:(Lorg/ehcache/core/spi/store/Store$Configuration;Lorg/ehcache/core/spi/time/TimeSource;Lorg/ehcache/core/events/StoreEventDispatcher;JLorg/ehcache/core/spi/service/StatisticsService;)V
            astore 7 /* offHeapStore */
        start local 7 // org.ehcache.impl.internal.store.offheap.OffHeapStore offHeapStore
        12: .line 179
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createdStores:Ljava/util/Set;
            aload 7 /* offHeapStore */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 180
            aload 7 /* offHeapStore */
            areturn
        end local 7 // org.ehcache.impl.internal.store.offheap.OffHeapStore offHeapStore
        end local 6 // org.ehcache.config.units.MemoryUnit unit
        end local 5 // org.ehcache.config.SizedResourcePool offHeapPool
        end local 4 // org.ehcache.core.spi.time.TimeSource timeSource
        end local 3 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
        end local 2 // org.ehcache.core.events.StoreEventDispatcher eventDispatcher
        end local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0   14     1      storeConfig  Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;
            0   14     2  eventDispatcher  Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;
            0   14     3   serviceConfigs  [Lorg/ehcache/spi/service/ServiceConfiguration;
            3   14     4       timeSource  Lorg/ehcache/core/spi/time/TimeSource;
            4   14     5      offHeapPool  Lorg/ehcache/config/SizedResourcePool;
            7   14     6             unit  Lorg/ehcache/config/units/MemoryUnit;
           12   14     7     offHeapStore  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;Lorg/ehcache/core/events/StoreEventDispatcher<TK;TV;>;[Lorg/ehcache/spi/service/ServiceConfiguration<**>;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
    MethodParameters:
                 Name  Flags
      storeConfig      
      eventDispatcher  
      serviceConfigs   

  public void releaseStore(org.ehcache.core.spi.store.Store<?, ?>);
    descriptor: (Lorg/ehcache/core/spi/store/Store;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.Store resource
         0: .line 185
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createdStores:Ljava/util/Set;
            aload 1 /* resource */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 186
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Given store is not managed by this provider : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* resource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 188
      StackMap locals:
      StackMap stack:
            aload 1 /* resource */
            checkcast org.ehcache.impl.internal.store.offheap.OffHeapStore
            astore 2 /* offHeapStore */
        start local 2 // org.ehcache.impl.internal.store.offheap.OffHeapStore offHeapStore
         3: .line 189
            aload 2 /* offHeapStore */
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.close:(Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;)V
         4: .line 190
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.getServiceProvider:()Lorg/ehcache/spi/service/ServiceProvider;
            ldc Lorg/ehcache/core/spi/service/StatisticsService;
            invokeinterface org.ehcache.spi.service.ServiceProvider.getService:(Ljava/lang/Class;)Lorg/ehcache/spi/service/Service;
            checkcast org.ehcache.core.spi.service.StatisticsService
            aload 2 /* offHeapStore */
            invokeinterface org.ehcache.core.spi.service.StatisticsService.cleanForNode:(Ljava/lang/Object;)V
         5: .line 191
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.tierOperationStatistics:Ljava/util/Map;
            aload 2 /* offHeapStore */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 192
            return
        end local 2 // org.ehcache.impl.internal.store.offheap.OffHeapStore offHeapStore
        end local 1 // org.ehcache.core.spi.store.Store resource
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    7     1      resource  Lorg/ehcache/core/spi/store/Store<**>;
            3    7     2  offHeapStore  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<**>;
    Signature: (Lorg/ehcache/core/spi/store/Store<**>;)V
    MethodParameters:
          Name  Flags
      resource  

  static void close(org.ehcache.impl.internal.store.offheap.OffHeapStore<?, ?>);
    descriptor: (Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore resource
         0: .line 195
            aload 0 /* resource */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.map:Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache;
            astore 1 /* localMap */
        start local 1 // org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache localMap
         1: .line 196
            aload 1 /* localMap */
            ifnull 4
         2: .line 197
            aload 0 /* resource */
            aconst_null
            putfield org.ehcache.impl.internal.store.offheap.OffHeapStore.map:Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache;
         3: .line 198
            aload 1 /* localMap */
            invokevirtual org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache.destroy:()V
         4: .line 200
      StackMap locals: org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache
      StackMap stack:
            return
        end local 1 // org.ehcache.impl.internal.store.offheap.EhcacheConcurrentOffHeapClockCache localMap
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore resource
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  resource  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<**>;
            1    5     1  localMap  Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache<**>;
    Signature: (Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<**>;)V
    MethodParameters:
          Name  Flags
      resource  final

  public void initStore(org.ehcache.core.spi.store.Store<?, ?>);
    descriptor: (Lorg/ehcache/core/spi/store/Store;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.Store resource
         0: .line 204
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createdStores:Ljava/util/Set;
            aload 1 /* resource */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 205
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Given store is not managed by this provider : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* resource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 208
      StackMap locals:
      StackMap stack:
            aload 1 /* resource */
            checkcast org.ehcache.impl.internal.store.offheap.OffHeapStore
            astore 2 /* offHeapStore */
        start local 2 // org.ehcache.impl.internal.store.offheap.OffHeapStore offHeapStore
         3: .line 209
            aload 2 /* offHeapStore */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.keySerializer:Lorg/ehcache/spi/serialization/Serializer;
            astore 3 /* keySerializer */
        start local 3 // org.ehcache.spi.serialization.Serializer keySerializer
         4: .line 210
            aload 3 /* keySerializer */
            instanceof org.ehcache.spi.serialization.StatefulSerializer
            ifeq 6
         5: .line 211
            aload 3 /* keySerializer */
            checkcast org.ehcache.spi.serialization.StatefulSerializer
            new org.ehcache.impl.serialization.TransientStateRepository
            dup
            invokespecial org.ehcache.impl.serialization.TransientStateRepository.<init>:()V
            invokeinterface org.ehcache.spi.serialization.StatefulSerializer.init:(Lorg/ehcache/spi/persistence/StateRepository;)V
         6: .line 213
      StackMap locals: org.ehcache.impl.internal.store.offheap.OffHeapStore org.ehcache.spi.serialization.Serializer
      StackMap stack:
            aload 2 /* offHeapStore */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.valueSerializer:Lorg/ehcache/spi/serialization/Serializer;
            astore 4 /* valueSerializer */
        start local 4 // org.ehcache.spi.serialization.Serializer valueSerializer
         7: .line 214
            aload 4 /* valueSerializer */
            instanceof org.ehcache.spi.serialization.StatefulSerializer
            ifeq 9
         8: .line 215
            aload 4 /* valueSerializer */
            checkcast org.ehcache.spi.serialization.StatefulSerializer
            new org.ehcache.impl.serialization.TransientStateRepository
            dup
            invokespecial org.ehcache.impl.serialization.TransientStateRepository.<init>:()V
            invokeinterface org.ehcache.spi.serialization.StatefulSerializer.init:(Lorg/ehcache/spi/persistence/StateRepository;)V
         9: .line 218
      StackMap locals: org.ehcache.spi.serialization.Serializer
      StackMap stack:
            aload 2 /* offHeapStore */
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.init:(Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;)V
        10: .line 219
            return
        end local 4 // org.ehcache.spi.serialization.Serializer valueSerializer
        end local 3 // org.ehcache.spi.serialization.Serializer keySerializer
        end local 2 // org.ehcache.impl.internal.store.offheap.OffHeapStore offHeapStore
        end local 1 // org.ehcache.core.spi.store.Store resource
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0   11     1         resource  Lorg/ehcache/core/spi/store/Store<**>;
            3   11     2     offHeapStore  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<**>;
            4   11     3    keySerializer  Lorg/ehcache/spi/serialization/Serializer<*>;
            7   11     4  valueSerializer  Lorg/ehcache/spi/serialization/Serializer<*>;
    Signature: (Lorg/ehcache/core/spi/store/Store<**>;)V
    MethodParameters:
          Name  Flags
      resource  

  static <K, V> void init(org.ehcache.impl.internal.store.offheap.OffHeapStore<K, V>);
    descriptor: (Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore resource
         0: .line 222
            aload 0 /* resource */
            aload 0 /* resource */
            aload 0 /* resource */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.sizeInBytes:J
            aload 0 /* resource */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.keySerializer:Lorg/ehcache/spi/serialization/Serializer;
            aload 0 /* resource */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.valueSerializer:Lorg/ehcache/spi/serialization/Serializer;
            aload 0 /* resource */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore.evictionAdvisor:Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore.createBackingMap:(JLorg/ehcache/spi/serialization/Serializer;Lorg/ehcache/spi/serialization/Serializer;Lorg/ehcache/impl/internal/store/offheap/SwitchableEvictionAdvisor;)Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache;
            putfield org.ehcache.impl.internal.store.offheap.OffHeapStore.map:Lorg/ehcache/impl/internal/store/offheap/EhcacheConcurrentOffHeapClockCache;
         1: .line 223
            return
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore resource
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  resource  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;)V
    MethodParameters:
          Name  Flags
      resource  final

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
         0: .line 228
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createdStores:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         1: .line 229
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1
         3: .line 230
            aload 0 /* this */
            invokespecial org.ehcache.impl.store.BaseStore$BaseStoreProvider.stop:()V
         4: .line 231
            aload 1
            athrow
         5: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.ehcache.impl.store.BaseStore$BaseStoreProvider.stop:()V
         6: .line 232
            return
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
      Exception table:
        from    to  target  type
           0     2       2  any

  public <K, V> org.ehcache.core.spi.store.tiering.AuthoritativeTier<K, V> createAuthoritativeTier(org.ehcache.core.spi.store.Store$Configuration<K, V>, org.ehcache.spi.service.ServiceConfiguration<?, ?>[]);
    descriptor: (Lorg/ehcache/core/spi/store/Store$Configuration;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        start local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
         0: .line 236
            aload 0 /* this */
            aload 1 /* storeConfig */
            new org.ehcache.impl.internal.events.ThreadLocalStoreEventDispatcher
            dup
            aload 1 /* storeConfig */
         1: .line 237
            invokeinterface org.ehcache.core.spi.store.Store$Configuration.getDispatcherConcurrency:()I
            invokespecial org.ehcache.impl.internal.events.ThreadLocalStoreEventDispatcher.<init>:(I)V
            aload 2 /* serviceConfigs */
         2: .line 236
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createStoreInternal:(Lorg/ehcache/core/spi/store/Store$Configuration;Lorg/ehcache/core/events/StoreEventDispatcher;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;
            astore 3 /* authoritativeTier */
        start local 3 // org.ehcache.impl.internal.store.offheap.OffHeapStore authoritativeTier
         3: .line 239
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.tierOperationStatistics:Ljava/util/Map;
            aload 3 /* authoritativeTier */
            iconst_2
            anewarray org.ehcache.core.statistics.OperationStatistic
            dup
            iconst_0
         4: .line 240
            aload 0 /* this */
            aload 3 /* authoritativeTier */
            ldc "get"
            getstatic org.ehcache.core.statistics.TierOperationOutcomes.GET_AND_FAULT_TRANSLATION:Ljava/util/Map;
            ldc "getAndFault"
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createTranslatedStatistic:(Lorg/ehcache/impl/store/BaseStore;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/ehcache/core/statistics/OperationStatistic;
            aastore
            dup
            iconst_1
         5: .line 241
            aload 0 /* this */
            aload 3 /* authoritativeTier */
            ldc "eviction"
            getstatic org.ehcache.core.statistics.TierOperationOutcomes.EVICTION_TRANSLATION:Ljava/util/Map;
            ldc "eviction"
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createTranslatedStatistic:(Lorg/ehcache/impl/store/BaseStore;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/ehcache/core/statistics/OperationStatistic;
            aastore
         6: .line 239
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 244
            aload 3 /* authoritativeTier */
            areturn
        end local 3 // org.ehcache.impl.internal.store.offheap.OffHeapStore authoritativeTier
        end local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
        end local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    8     1        storeConfig  Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;
            0    8     2     serviceConfigs  [Lorg/ehcache/spi/service/ServiceConfiguration;
            3    8     3  authoritativeTier  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;[Lorg/ehcache/spi/service/ServiceConfiguration<**>;)Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier<TK;TV;>;
    MethodParameters:
                Name  Flags
      storeConfig     
      serviceConfigs  

  public void releaseAuthoritativeTier(org.ehcache.core.spi.store.tiering.AuthoritativeTier<?, ?>);
    descriptor: (Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.tiering.AuthoritativeTier resource
         0: .line 249
            aload 0 /* this */
            aload 1 /* resource */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.releaseStore:(Lorg/ehcache/core/spi/store/Store;)V
         1: .line 250
            return
        end local 1 // org.ehcache.core.spi.store.tiering.AuthoritativeTier resource
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    2     1  resource  Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier<**>;
    Signature: (Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier<**>;)V
    MethodParameters:
          Name  Flags
      resource  

  public void initAuthoritativeTier(org.ehcache.core.spi.store.tiering.AuthoritativeTier<?, ?>);
    descriptor: (Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.tiering.AuthoritativeTier resource
         0: .line 254
            aload 0 /* this */
            aload 1 /* resource */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.initStore:(Lorg/ehcache/core/spi/store/Store;)V
         1: .line 255
            return
        end local 1 // org.ehcache.core.spi.store.tiering.AuthoritativeTier resource
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    2     1  resource  Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier<**>;
    Signature: (Lorg/ehcache/core/spi/store/tiering/AuthoritativeTier<**>;)V
    MethodParameters:
          Name  Flags
      resource  

  public <K, V> org.ehcache.core.spi.store.tiering.LowerCachingTier<K, V> createCachingTier(org.ehcache.core.spi.store.Store$Configuration<K, V>, org.ehcache.spi.service.ServiceConfiguration<?, ?>[]);
    descriptor: (Lorg/ehcache/core/spi/store/Store$Configuration;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/core/spi/store/tiering/LowerCachingTier;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        start local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
         0: .line 259
            aload 0 /* this */
            aload 1 /* storeConfig */
            invokestatic org.ehcache.core.events.NullStoreEventDispatcher.nullStoreEventDispatcher:()Lorg/ehcache/core/events/StoreEventDispatcher;
            aload 2 /* serviceConfigs */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createStoreInternal:(Lorg/ehcache/core/spi/store/Store$Configuration;Lorg/ehcache/core/events/StoreEventDispatcher;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;
            astore 3 /* lowerCachingTier */
        start local 3 // org.ehcache.impl.internal.store.offheap.OffHeapStore lowerCachingTier
         1: .line 261
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.tierOperationStatistics:Ljava/util/Map;
            aload 3 /* lowerCachingTier */
            iconst_2
            anewarray org.ehcache.core.statistics.OperationStatistic
            dup
            iconst_0
         2: .line 262
            aload 0 /* this */
            aload 3 /* lowerCachingTier */
            ldc "get"
            getstatic org.ehcache.core.statistics.TierOperationOutcomes.GET_AND_REMOVE_TRANSLATION:Ljava/util/Map;
            ldc "getAndRemove"
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createTranslatedStatistic:(Lorg/ehcache/impl/store/BaseStore;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/ehcache/core/statistics/OperationStatistic;
            aastore
            dup
            iconst_1
         3: .line 263
            aload 0 /* this */
            aload 3 /* lowerCachingTier */
            ldc "eviction"
            getstatic org.ehcache.core.statistics.TierOperationOutcomes.EVICTION_TRANSLATION:Ljava/util/Map;
            ldc "eviction"
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createTranslatedStatistic:(Lorg/ehcache/impl/store/BaseStore;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/ehcache/core/statistics/OperationStatistic;
            aastore
         4: .line 261
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 266
            aload 3 /* lowerCachingTier */
            areturn
        end local 3 // org.ehcache.impl.internal.store.offheap.OffHeapStore lowerCachingTier
        end local 2 // org.ehcache.spi.service.ServiceConfiguration[] serviceConfigs
        end local 1 // org.ehcache.core.spi.store.Store$Configuration storeConfig
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    6     1       storeConfig  Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;
            0    6     2    serviceConfigs  [Lorg/ehcache/spi/service/ServiceConfiguration;
            1    6     3  lowerCachingTier  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/ehcache/core/spi/store/Store$Configuration<TK;TV;>;[Lorg/ehcache/spi/service/ServiceConfiguration<**>;)Lorg/ehcache/core/spi/store/tiering/LowerCachingTier<TK;TV;>;
    MethodParameters:
                Name  Flags
      storeConfig     
      serviceConfigs  

  public void releaseCachingTier(org.ehcache.core.spi.store.tiering.LowerCachingTier<?, ?>);
    descriptor: (Lorg/ehcache/core/spi/store/tiering/LowerCachingTier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.tiering.LowerCachingTier resource
         0: .line 272
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createdStores:Ljava/util/Set;
            aload 1 /* resource */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 273
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Given caching tier is not managed by this provider : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* resource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* resource */
            checkcast org.ehcache.impl.internal.store.offheap.OffHeapStore
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.flushToLowerTier:(Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;)V
         3: .line 276
            aload 0 /* this */
            aload 1 /* resource */
            checkcast org.ehcache.core.spi.store.Store
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.releaseStore:(Lorg/ehcache/core/spi/store/Store;)V
         4: .line 277
            return
        end local 1 // org.ehcache.core.spi.store.tiering.LowerCachingTier resource
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    5     1  resource  Lorg/ehcache/core/spi/store/tiering/LowerCachingTier<**>;
    Signature: (Lorg/ehcache/core/spi/store/tiering/LowerCachingTier<**>;)V
    MethodParameters:
          Name  Flags
      resource  

  private void flushToLowerTier(org.ehcache.impl.internal.store.offheap.OffHeapStore<java.lang.Object, ?>);
    descriptor: (Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.impl.internal.store.offheap.OffHeapStore offheapStore
         0: .line 280
            aconst_null
            astore 2 /* lastFailure */
        start local 2 // org.ehcache.spi.resilience.StoreAccessException lastFailure
         1: .line 281
            iconst_0
            istore 3 /* failureCount */
        start local 3 // int failureCount
         2: .line 282
            aload 1 /* offheapStore */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore.backingMap:()Lorg/ehcache/impl/internal/store/offheap/EhcacheOffHeapBackingMap;
            invokeinterface org.ehcache.impl.internal.store.offheap.EhcacheOffHeapBackingMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider org.ehcache.impl.internal.store.offheap.OffHeapStore org.ehcache.spi.resilience.StoreAccessException int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* key */
        start local 4 // java.lang.Object key
         4: .line 284
            aload 1 /* offheapStore */
            aload 4 /* key */
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore.invalidate:(Ljava/lang/Object;)V
         5: .line 285
            goto 10
      StackMap locals: org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider org.ehcache.impl.internal.store.offheap.OffHeapStore org.ehcache.spi.resilience.StoreAccessException int java.lang.Object java.util.Iterator
      StackMap stack: org.ehcache.spi.resilience.StoreAccessException
         6: astore 6 /* cae */
        start local 6 // org.ehcache.spi.resilience.StoreAccessException cae
         7: .line 286
            aload 6 /* cae */
            astore 2 /* lastFailure */
         8: .line 287
            iinc 3 /* failureCount */ 1
         9: .line 288
            getstatic org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.LOGGER:Lorg/slf4j/Logger;
            ldc "Error flushing '{}' to lower tier"
            aload 4 /* key */
            aload 6 /* cae */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // org.ehcache.spi.resilience.StoreAccessException cae
        end local 4 // java.lang.Object key
        10: .line 282
      StackMap locals: org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider org.ehcache.impl.internal.store.offheap.OffHeapStore org.ehcache.spi.resilience.StoreAccessException int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        11: .line 291
            aload 2 /* lastFailure */
            ifnull 15
        12: .line 292
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to flush some mappings to lower tier, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 293
            iload 3 /* failureCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " could not be flushed. This error represents the last failure."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* lastFailure */
        14: .line 292
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        15: .line 295
      StackMap locals: org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider org.ehcache.impl.internal.store.offheap.OffHeapStore org.ehcache.spi.resilience.StoreAccessException int
      StackMap stack:
            return
        end local 3 // int failureCount
        end local 2 // org.ehcache.spi.resilience.StoreAccessException lastFailure
        end local 1 // org.ehcache.impl.internal.store.offheap.OffHeapStore offheapStore
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0   16     1  offheapStore  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<Ljava/lang/Object;*>;
            1   16     2   lastFailure  Lorg/ehcache/spi/resilience/StoreAccessException;
            2   16     3  failureCount  I
            4   10     4           key  Ljava/lang/Object;
            7   10     6           cae  Lorg/ehcache/spi/resilience/StoreAccessException;
      Exception table:
        from    to  target  type
           4     5       6  Class org.ehcache.spi.resilience.StoreAccessException
    Signature: (Lorg/ehcache/impl/internal/store/offheap/OffHeapStore<Ljava/lang/Object;*>;)V
    MethodParameters:
              Name  Flags
      offheapStore  

  public void initCachingTier(org.ehcache.core.spi.store.tiering.LowerCachingTier<?, ?>);
    descriptor: (Lorg/ehcache/core/spi/store/tiering/LowerCachingTier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
        start local 1 // org.ehcache.core.spi.store.tiering.LowerCachingTier resource
         0: .line 299
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createdStores:Ljava/util/Set;
            aload 1 /* resource */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 300
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Given caching tier is not managed by this provider : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* resource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* resource */
            checkcast org.ehcache.impl.internal.store.offheap.OffHeapStore
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.init:(Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;)V
         3: .line 303
            return
        end local 1 // org.ehcache.core.spi.store.tiering.LowerCachingTier resource
        end local 0 // org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/ehcache/impl/internal/store/offheap/OffHeapStore$Provider;
            0    4     1  resource  Lorg/ehcache/core/spi/store/tiering/LowerCachingTier<**>;
    Signature: (Lorg/ehcache/core/spi/store/tiering/LowerCachingTier<**>;)V
    MethodParameters:
          Name  Flags
      resource  

  public org.ehcache.core.spi.store.Store createStore(org.ehcache.core.spi.store.Store$Configuration, org.ehcache.spi.service.ServiceConfiguration[]);
    descriptor: (Lorg/ehcache/core/spi/store/Store$Configuration;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/core/spi/store/Store;
    flags: (0x10c1) ACC_PUBLIC, ACC_BRIDGE, ACC_VARARGS, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast org.ehcache.core.spi.store.Store$Configuration
            aload 2
            invokevirtual org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider.createStore:(Lorg/ehcache/core/spi/store/Store$Configuration;[Lorg/ehcache/spi/service/ServiceConfiguration;)Lorg/ehcache/impl/internal/store/offheap/OffHeapStore;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void start(org.ehcache.spi.service.ServiceProvider);
    descriptor: (Lorg/ehcache/spi/service/ServiceProvider;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial org.ehcache.impl.store.BaseStore$BaseStoreProvider.start:(Lorg/ehcache/spi/service/ServiceProvider;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "OffHeapStore.java"
NestHost: org.ehcache.impl.internal.store.offheap.OffHeapStore
InnerClasses:
  public final Core = org.ehcache.config.ResourceType$Core of org.ehcache.config.ResourceType
  public abstract Configuration = org.ehcache.core.spi.store.Store$Configuration of org.ehcache.core.spi.store.Store
  public abstract Provider = org.ehcache.core.spi.store.tiering.AuthoritativeTier$Provider of org.ehcache.core.spi.store.tiering.AuthoritativeTier
  public abstract Provider = org.ehcache.core.spi.store.tiering.LowerCachingTier$Provider of org.ehcache.core.spi.store.tiering.LowerCachingTier
  public Provider = org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider of org.ehcache.impl.internal.store.offheap.OffHeapStore
  protected abstract BaseStoreProvider = org.ehcache.impl.store.BaseStore$BaseStoreProvider of org.ehcache.impl.store.BaseStore
    RuntimeVisibleAnnotations: 
      org.ehcache.spi.service.ServiceDependencies(value = {Lorg/ehcache/core/spi/time/TimeSourceService;, Lorg/ehcache/spi/serialization/SerializationProvider;})