public class org.hibernate.internal.CacheImpl implements org.hibernate.engine.spi.CacheImplementor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.internal.CacheImpl
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.cfg.Settings settings;
    descriptor: Lorg/hibernate/cfg/Settings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final transient org.hibernate.cache.spi.QueryCache queryCache;
    descriptor: Lorg/hibernate/cache/spi/QueryCache;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private final transient org.hibernate.cache.spi.RegionFactory regionFactory;
    descriptor: Lorg/hibernate/cache/spi/RegionFactory;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private final transient org.hibernate.cache.spi.UpdateTimestampsCache updateTimestampsCache;
    descriptor: Lorg/hibernate/cache/spi/UpdateTimestampsCache;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private final transient java.util.concurrent.ConcurrentMap<java.lang.String, org.hibernate.cache.spi.QueryCache> queryCaches;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lorg/hibernate/cache/spi/QueryCache;>;

  private final transient java.util.concurrent.ConcurrentMap<java.lang.String, org.hibernate.cache.spi.Region> allCacheRegions;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lorg/hibernate/cache/spi/Region;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 54
            ldc Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 55
            ldc Lorg/hibernate/internal/CacheImpl;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         2: .line 53
            invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.hibernate.internal.CoreMessageLogger
            putstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         3: .line 56
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
         2: .line 66
            aload 0 /* this */
            aload 1 /* sessionFactory */
            putfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         3: .line 67
            aload 0 /* this */
            aload 1 /* sessionFactory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            putfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
         4: .line 69
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.getRegionFactory:()Lorg/hibernate/cache/spi/RegionFactory;
            putfield org.hibernate.internal.CacheImpl.regionFactory:Lorg/hibernate/cache/spi/RegionFactory;
         5: .line 70
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.regionFactory:Lorg/hibernate/cache/spi/RegionFactory;
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            aload 1 /* sessionFactory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getProperties:()Ljava/util/Properties;
            invokeinterface org.hibernate.cache.spi.RegionFactory.start:(Lorg/hibernate/cfg/Settings;Ljava/util/Properties;)V
         6: .line 71
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isQueryCacheEnabled:()Z
            ifeq 19
         7: .line 72
            aload 0 /* this */
            new org.hibernate.cache.spi.UpdateTimestampsCache
            dup
         8: .line 73
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
         9: .line 74
            aload 1 /* sessionFactory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getProperties:()Ljava/util/Properties;
        10: .line 75
            aload 1 /* sessionFactory */
            invokespecial org.hibernate.cache.spi.UpdateTimestampsCache.<init>:(Lorg/hibernate/cfg/Settings;Ljava/util/Properties;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
        11: .line 72
            putfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
        12: .line 77
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.getQueryCacheFactory:()Lorg/hibernate/cache/spi/QueryCacheFactory;
        13: .line 78
            aconst_null
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            aload 1 /* sessionFactory */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getProperties:()Ljava/util/Properties;
            invokeinterface org.hibernate.cache.spi.QueryCacheFactory.getQueryCache:(Ljava/lang/String;Lorg/hibernate/cache/spi/UpdateTimestampsCache;Lorg/hibernate/cfg/Settings;Ljava/util/Properties;)Lorg/hibernate/cache/spi/QueryCache;
        14: .line 77
            putfield org.hibernate.internal.CacheImpl.queryCache:Lorg/hibernate/cache/spi/QueryCache;
        15: .line 79
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
        16: .line 80
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
            invokevirtual org.hibernate.cache.spi.UpdateTimestampsCache.getRegion:()Lorg/hibernate/cache/spi/TimestampsRegion;
            invokeinterface org.hibernate.cache.spi.TimestampsRegion.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
            invokevirtual org.hibernate.cache.spi.UpdateTimestampsCache.getRegion:()Lorg/hibernate/cache/spi/TimestampsRegion;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 81
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCache:Lorg/hibernate/cache/spi/QueryCache;
            invokeinterface org.hibernate.cache.spi.QueryCache.getRegion:()Lorg/hibernate/cache/spi/QueryResultsRegion;
            invokeinterface org.hibernate.cache.spi.QueryResultsRegion.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCache:Lorg/hibernate/cache/spi/QueryCache;
            invokeinterface org.hibernate.cache.spi.QueryCache.getRegion:()Lorg/hibernate/cache/spi/QueryResultsRegion;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 82
            goto 22
        19: .line 84
      StackMap locals: org.hibernate.internal.CacheImpl org.hibernate.engine.spi.SessionFactoryImplementor
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
        20: .line 85
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.internal.CacheImpl.queryCache:Lorg/hibernate/cache/spi/QueryCache;
        21: .line 86
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
        22: .line 88
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Lorg/hibernate/internal/CacheImpl;
            0   23     1  sessionFactory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    MethodParameters:
                Name  Flags
      sessionFactory  

  public boolean containsEntity(java.lang.Class, java.io.Serializable);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable identifier
         0: .line 92
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 2 /* identifier */
            invokevirtual org.hibernate.internal.CacheImpl.containsEntity:(Ljava/lang/String;Ljava/io/Serializable;)Z
            ireturn
        end local 2 // java.io.Serializable identifier
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/internal/CacheImpl;
            0    1     1  entityClass  Ljava/lang/Class;
            0    1     2   identifier  Ljava/io/Serializable;
    MethodParameters:
             Name  Flags
      entityClass  
      identifier   

  public boolean containsEntity(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable identifier
         0: .line 97
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 3 /* p */
        start local 3 // org.hibernate.persister.entity.EntityPersister p
         1: .line 98
            aload 3 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasCache:()Z
            ifeq 4
         2: .line 99
            aload 3 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/EntityRegion;
            aload 0 /* this */
            aload 2 /* identifier */
            aload 3 /* p */
            invokevirtual org.hibernate.internal.CacheImpl.buildCacheKey:(Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/cache/spi/CacheKey;
            invokeinterface org.hibernate.cache.spi.EntityRegion.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 98
            iconst_1
            ireturn
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
         4: iconst_0
            ireturn
        end local 3 // org.hibernate.persister.entity.EntityPersister p
        end local 2 // java.io.Serializable identifier
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/hibernate/internal/CacheImpl;
            0    5     1  entityName  Ljava/lang/String;
            0    5     2  identifier  Ljava/io/Serializable;
            1    5     3           p  Lorg/hibernate/persister/entity/EntityPersister;
    MethodParameters:
            Name  Flags
      entityName  
      identifier  

  public void evictEntity(java.lang.Class, java.io.Serializable);
    descriptor: (Ljava/lang/Class;Ljava/io/Serializable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.Class entityClass
        start local 2 // java.io.Serializable identifier
         0: .line 104
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 2 /* identifier */
            invokevirtual org.hibernate.internal.CacheImpl.evictEntity:(Ljava/lang/String;Ljava/io/Serializable;)V
         1: .line 105
            return
        end local 2 // java.io.Serializable identifier
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hibernate/internal/CacheImpl;
            0    2     1  entityClass  Ljava/lang/Class;
            0    2     2   identifier  Ljava/io/Serializable;
    MethodParameters:
             Name  Flags
      entityClass  
      identifier   

  public void evictEntity(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String entityName
        start local 2 // java.io.Serializable identifier
         0: .line 109
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 3 /* p */
        start local 3 // org.hibernate.persister.entity.EntityPersister p
         1: .line 110
            aload 3 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasCache:()Z
            ifeq 8
         2: .line 111
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 7
         3: .line 112
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         4: .line 113
            ldc "Evicting second-level cache: %s"
         5: .line 114
            aload 3 /* p */
            aload 2 /* identifier */
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.infoString:(Lorg/hibernate/persister/entity/EntityPersister;Ljava/lang/Object;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
         6: .line 112
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 117
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 3 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            aload 0 /* this */
            aload 2 /* identifier */
            aload 3 /* p */
            invokevirtual org.hibernate.internal.CacheImpl.buildCacheKey:(Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/cache/spi/CacheKey;
            invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.evict:(Ljava/lang/Object;)V
         8: .line 119
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.persister.entity.EntityPersister p
        end local 2 // java.io.Serializable identifier
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/hibernate/internal/CacheImpl;
            0    9     1  entityName  Ljava/lang/String;
            0    9     2  identifier  Ljava/io/Serializable;
            1    9     3           p  Lorg/hibernate/persister/entity/EntityPersister;
    MethodParameters:
            Name  Flags
      entityName  
      identifier  

  private org.hibernate.cache.spi.CacheKey buildCacheKey(java.io.Serializable, org.hibernate.persister.entity.EntityPersister);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/cache/spi/CacheKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.io.Serializable identifier
        start local 2 // org.hibernate.persister.entity.EntityPersister p
         0: .line 122
            new org.hibernate.cache.spi.CacheKey
            dup
         1: .line 123
            aload 1 /* identifier */
         2: .line 124
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getIdentifierType:()Lorg/hibernate/type/Type;
         3: .line 125
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getRootEntityName:()Ljava/lang/String;
         4: .line 126
            aconst_null
         5: .line 127
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         6: .line 122
            invokespecial org.hibernate.cache.spi.CacheKey.<init>:(Ljava/io/Serializable;Lorg/hibernate/type/Type;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            areturn
        end local 2 // org.hibernate.persister.entity.EntityPersister p
        end local 1 // java.io.Serializable identifier
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/hibernate/internal/CacheImpl;
            0    7     1  identifier  Ljava/io/Serializable;
            0    7     2           p  Lorg/hibernate/persister/entity/EntityPersister;
    MethodParameters:
            Name  Flags
      identifier  
      p           

  public void evictEntityRegion(java.lang.Class);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 133
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.hibernate.internal.CacheImpl.evictEntityRegion:(Ljava/lang/String;)V
         1: .line 134
            return
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hibernate/internal/CacheImpl;
            0    2     1  entityClass  Ljava/lang/Class;
    MethodParameters:
             Name  Flags
      entityClass  

  public void evictEntityRegion(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String entityName
         0: .line 138
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 2 /* p */
        start local 2 // org.hibernate.persister.entity.EntityPersister p
         1: .line 139
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasCache:()Z
            ifeq 5
         2: .line 140
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 4
         3: .line 141
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Evicting second-level cache: %s"
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 143
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            invokeinterface org.hibernate.cache.spi.access.EntityRegionAccessStrategy.evictAll:()V
         5: .line 145
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.persister.entity.EntityPersister p
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/internal/CacheImpl;
            0    6     1  entityName  Ljava/lang/String;
            1    6     2           p  Lorg/hibernate/persister/entity/EntityPersister;
    MethodParameters:
            Name  Flags
      entityName  

  public void evictEntityRegions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 149
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersisters:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: org.hibernate.internal.CacheImpl top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* s */
        start local 1 // java.lang.String s
         2: .line 150
            aload 0 /* this */
            aload 1 /* s */
            invokevirtual org.hibernate.internal.CacheImpl.evictEntityRegion:(Ljava/lang/String;)V
        end local 1 // java.lang.String s
         3: .line 149
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 152
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/internal/CacheImpl;
            2    3     1     s  Ljava/lang/String;

  public void evictNaturalIdRegion(java.lang.Class);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.Class entityClass
         0: .line 156
            aload 0 /* this */
            aload 1 /* entityClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.hibernate.internal.CacheImpl.evictNaturalIdRegion:(Ljava/lang/String;)V
         1: .line 157
            return
        end local 1 // java.lang.Class entityClass
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hibernate/internal/CacheImpl;
            0    2     1  entityClass  Ljava/lang/Class;
    MethodParameters:
             Name  Flags
      entityClass  

  public void evictNaturalIdRegion(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String entityName
         0: .line 161
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* entityName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 2 /* p */
        start local 2 // org.hibernate.persister.entity.EntityPersister p
         1: .line 162
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.hasNaturalIdCache:()Z
            ifeq 5
         2: .line 163
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 4
         3: .line 164
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Evicting natural-id cache: %s"
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 166
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 2 /* p */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getNaturalIdCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            invokeinterface org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy.evictAll:()V
         5: .line 168
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.persister.entity.EntityPersister p
        end local 1 // java.lang.String entityName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/internal/CacheImpl;
            0    6     1  entityName  Ljava/lang/String;
            1    6     2           p  Lorg/hibernate/persister/entity/EntityPersister;
    MethodParameters:
            Name  Flags
      entityName  

  public void evictNaturalIdRegions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 172
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersisters:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: org.hibernate.internal.CacheImpl top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* s */
        start local 1 // java.lang.String s
         2: .line 173
            aload 0 /* this */
            aload 1 /* s */
            invokevirtual org.hibernate.internal.CacheImpl.evictNaturalIdRegion:(Ljava/lang/String;)V
        end local 1 // java.lang.String s
         3: .line 172
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 175
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/internal/CacheImpl;
            2    3     1     s  Ljava/lang/String;

  public boolean containsCollection(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String role
        start local 2 // java.io.Serializable ownerIdentifier
         0: .line 179
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* role */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCollectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            astore 3 /* p */
        start local 3 // org.hibernate.persister.collection.CollectionPersister p
         1: .line 180
            aload 3 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.hasCache:()Z
            ifeq 4
         2: .line 181
            aload 3 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            invokeinterface org.hibernate.cache.spi.access.CollectionRegionAccessStrategy.getRegion:()Lorg/hibernate/cache/spi/CollectionRegion;
            aload 0 /* this */
            aload 2 /* ownerIdentifier */
            aload 3 /* p */
            invokevirtual org.hibernate.internal.CacheImpl.buildCacheKey:(Ljava/io/Serializable;Lorg/hibernate/persister/collection/CollectionPersister;)Lorg/hibernate/cache/spi/CacheKey;
            invokeinterface org.hibernate.cache.spi.CollectionRegion.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 180
            iconst_1
            ireturn
      StackMap locals: org.hibernate.persister.collection.CollectionPersister
      StackMap stack:
         4: iconst_0
            ireturn
        end local 3 // org.hibernate.persister.collection.CollectionPersister p
        end local 2 // java.io.Serializable ownerIdentifier
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/hibernate/internal/CacheImpl;
            0    5     1             role  Ljava/lang/String;
            0    5     2  ownerIdentifier  Ljava/io/Serializable;
            1    5     3                p  Lorg/hibernate/persister/collection/CollectionPersister;
    MethodParameters:
                 Name  Flags
      role             
      ownerIdentifier  

  public void evictCollection(java.lang.String, java.io.Serializable);
    descriptor: (Ljava/lang/String;Ljava/io/Serializable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String role
        start local 2 // java.io.Serializable ownerIdentifier
         0: .line 186
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* role */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCollectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            astore 3 /* p */
        start local 3 // org.hibernate.persister.collection.CollectionPersister p
         1: .line 187
            aload 3 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.hasCache:()Z
            ifeq 9
         2: .line 188
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 7
         3: .line 189
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         4: .line 190
            ldc "Evicting second-level cache: %s"
         5: .line 191
            aload 3 /* p */
            aload 2 /* ownerIdentifier */
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.pretty.MessageHelper.collectionInfoString:(Lorg/hibernate/persister/collection/CollectionPersister;Ljava/io/Serializable;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
         6: .line 189
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 194
      StackMap locals: org.hibernate.persister.collection.CollectionPersister
      StackMap stack:
            aload 0 /* this */
            aload 2 /* ownerIdentifier */
            aload 3 /* p */
            invokevirtual org.hibernate.internal.CacheImpl.buildCacheKey:(Ljava/io/Serializable;Lorg/hibernate/persister/collection/CollectionPersister;)Lorg/hibernate/cache/spi/CacheKey;
            astore 4 /* cacheKey */
        start local 4 // org.hibernate.cache.spi.CacheKey cacheKey
         8: .line 195
            aload 3 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            aload 4 /* cacheKey */
            invokeinterface org.hibernate.cache.spi.access.CollectionRegionAccessStrategy.evict:(Ljava/lang/Object;)V
        end local 4 // org.hibernate.cache.spi.CacheKey cacheKey
         9: .line 197
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.hibernate.persister.collection.CollectionPersister p
        end local 2 // java.io.Serializable ownerIdentifier
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/hibernate/internal/CacheImpl;
            0   10     1             role  Ljava/lang/String;
            0   10     2  ownerIdentifier  Ljava/io/Serializable;
            1   10     3                p  Lorg/hibernate/persister/collection/CollectionPersister;
            8    9     4         cacheKey  Lorg/hibernate/cache/spi/CacheKey;
    MethodParameters:
                 Name  Flags
      role             
      ownerIdentifier  

  private org.hibernate.cache.spi.CacheKey buildCacheKey(java.io.Serializable, org.hibernate.persister.collection.CollectionPersister);
    descriptor: (Ljava/io/Serializable;Lorg/hibernate/persister/collection/CollectionPersister;)Lorg/hibernate/cache/spi/CacheKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.io.Serializable ownerIdentifier
        start local 2 // org.hibernate.persister.collection.CollectionPersister p
         0: .line 200
            new org.hibernate.cache.spi.CacheKey
            dup
         1: .line 201
            aload 1 /* ownerIdentifier */
         2: .line 202
            aload 2 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getKeyType:()Lorg/hibernate/type/Type;
         3: .line 203
            aload 2 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
         4: .line 204
            aconst_null
         5: .line 205
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         6: .line 200
            invokespecial org.hibernate.cache.spi.CacheKey.<init>:(Ljava/io/Serializable;Lorg/hibernate/type/Type;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            areturn
        end local 2 // org.hibernate.persister.collection.CollectionPersister p
        end local 1 // java.io.Serializable ownerIdentifier
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/hibernate/internal/CacheImpl;
            0    7     1  ownerIdentifier  Ljava/io/Serializable;
            0    7     2                p  Lorg/hibernate/persister/collection/CollectionPersister;
    MethodParameters:
                 Name  Flags
      ownerIdentifier  
      p                

  public void evictCollectionRegion(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String role
         0: .line 211
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* role */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCollectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            astore 2 /* p */
        start local 2 // org.hibernate.persister.collection.CollectionPersister p
         1: .line 212
            aload 2 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.hasCache:()Z
            ifeq 5
         2: .line 213
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 4
         3: .line 214
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Evicting second-level cache: %s"
            aload 2 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getRole:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 216
      StackMap locals: org.hibernate.persister.collection.CollectionPersister
      StackMap stack:
            aload 2 /* p */
            invokeinterface org.hibernate.persister.collection.CollectionPersister.getCacheAccessStrategy:()Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            invokeinterface org.hibernate.cache.spi.access.CollectionRegionAccessStrategy.evictAll:()V
         5: .line 218
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.persister.collection.CollectionPersister p
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hibernate/internal/CacheImpl;
            0    6     1  role  Ljava/lang/String;
            1    6     2     p  Lorg/hibernate/persister/collection/CollectionPersister;
    MethodParameters:
      Name  Flags
      role  

  public void evictCollectionRegions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 222
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getCollectionPersisters:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: org.hibernate.internal.CacheImpl top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* s */
        start local 1 // java.lang.String s
         2: .line 223
            aload 0 /* this */
            aload 1 /* s */
            invokevirtual org.hibernate.internal.CacheImpl.evictCollectionRegion:(Ljava/lang/String;)V
        end local 1 // java.lang.String s
         3: .line 222
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 225
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/internal/CacheImpl;
            2    3     1     s  Ljava/lang/String;

  public boolean containsQuery(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String regionName
         0: .line 229
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regionName */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String regionName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/CacheImpl;
            0    1     1  regionName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      regionName  

  public void evictDefaultQueryRegion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 234
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isQueryCacheEnabled:()Z
            ifeq 4
         1: .line 235
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 3
         2: .line 236
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Evicting default query region cache."
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
         3: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getQueryCache:()Lorg/hibernate/cache/spi/QueryCache;
            invokeinterface org.hibernate.cache.spi.QueryCache.clear:()V
         4: .line 240
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/internal/CacheImpl;

  public void evictQueryRegion(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String regionName
         0: .line 244
            aload 1 /* regionName */
            ifnonnull 4
         1: .line 245
            new java.lang.NullPointerException
            dup
         2: .line 246
            ldc "Region-name cannot be null (use Cache#evictDefaultQueryRegion to evict the default query cache)"
         3: .line 245
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSettings:()Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isQueryCacheEnabled:()Z
            ifeq 10
         5: .line 250
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regionName */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.QueryCache
            astore 2 /* namedQueryCache */
        start local 2 // org.hibernate.cache.spi.QueryCache namedQueryCache
         6: .line 252
            aload 2 /* namedQueryCache */
            ifnull 10
         7: .line 253
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 9
         8: .line 254
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Evicting query cache, region: %s"
            aload 1 /* regionName */
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 256
      StackMap locals: org.hibernate.cache.spi.QueryCache
      StackMap stack:
            aload 2 /* namedQueryCache */
            invokeinterface org.hibernate.cache.spi.QueryCache.clear:()V
        end local 2 // org.hibernate.cache.spi.QueryCache namedQueryCache
        10: .line 259
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String regionName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/hibernate/internal/CacheImpl;
            0   11     1       regionName  Ljava/lang/String;
            6   10     2  namedQueryCache  Lorg/hibernate/cache/spi/QueryCache;
    MethodParameters:
            Name  Flags
      regionName  

  public void evictQueryRegions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 263
            aload 0 /* this */
            invokevirtual org.hibernate.internal.CacheImpl.evictDefaultQueryRegion:()V
         1: .line 265
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            invokestatic org.hibernate.internal.util.collections.CollectionHelper.isEmpty:(Ljava/util/Map;)Z
            ifeq 3
         2: .line 266
            return
         3: .line 268
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 5
         4: .line 269
            getstatic org.hibernate.internal.CacheImpl.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Evicting cache of all query regions."
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
         5: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 8
      StackMap locals: org.hibernate.internal.CacheImpl top java.util.Iterator
      StackMap stack:
         6: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.QueryCache
            astore 1 /* queryCache */
        start local 1 // org.hibernate.cache.spi.QueryCache queryCache
         7: .line 272
            aload 1 /* queryCache */
            invokeinterface org.hibernate.cache.spi.QueryCache.clear:()V
        end local 1 // org.hibernate.cache.spi.QueryCache queryCache
         8: .line 271
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 274
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/hibernate/internal/CacheImpl;
            7    8     1  queryCache  Lorg/hibernate/cache/spi/QueryCache;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 278
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isQueryCacheEnabled:()Z
            ifeq 8
         1: .line 279
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCache:Lorg/hibernate/cache/spi/QueryCache;
            invokeinterface org.hibernate.cache.spi.QueryCache.destroy:()V
         2: .line 281
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         3: .line 282
            goto 6
         4: .line 283
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.QueryCache
            astore 2 /* cache */
        start local 2 // org.hibernate.cache.spi.QueryCache cache
         5: .line 284
            aload 2 /* cache */
            invokeinterface org.hibernate.cache.spi.QueryCache.destroy:()V
        end local 2 // org.hibernate.cache.spi.QueryCache cache
         6: .line 282
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 286
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
            invokevirtual org.hibernate.cache.spi.UpdateTimestampsCache.destroy:()V
        end local 1 // java.util.Iterator iter
         8: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.regionFactory:Lorg/hibernate/cache/spi/RegionFactory;
            invokeinterface org.hibernate.cache.spi.RegionFactory.stop:()V
         9: .line 290
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/hibernate/internal/CacheImpl;
            3    8     1   iter  Ljava/util/Iterator;
            5    6     2  cache  Lorg/hibernate/cache/spi/QueryCache;

  public org.hibernate.cache.spi.QueryCache getQueryCache();
    descriptor: ()Lorg/hibernate/cache/spi/QueryCache;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 294
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCache:Lorg/hibernate/cache/spi/QueryCache;
            areturn
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/CacheImpl;

  public org.hibernate.cache.spi.QueryCache getQueryCache(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/cache/spi/QueryCache;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String regionName
         0: .line 299
            aload 1 /* regionName */
            ifnonnull 2
         1: .line 300
            aload 0 /* this */
            invokevirtual org.hibernate.internal.CacheImpl.getQueryCache:()Lorg/hibernate/cache/spi/QueryCache;
            areturn
         2: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isQueryCacheEnabled:()Z
            ifne 4
         3: .line 304
            aconst_null
            areturn
         4: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regionName */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.QueryCache
            astore 2 /* currentQueryCache */
        start local 2 // org.hibernate.cache.spi.QueryCache currentQueryCache
         5: .line 308
            aload 2 /* currentQueryCache */
            ifnonnull 25
         6: .line 309
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            dup
            astore 3
            monitorenter
         7: .line 310
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regionName */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.QueryCache
            astore 2 /* currentQueryCache */
         8: .line 311
            aload 2 /* currentQueryCache */
            ifnonnull 19
         9: .line 312
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.getQueryCacheFactory:()Lorg/hibernate/cache/spi/QueryCacheFactory;
        10: .line 314
            aload 1 /* regionName */
        11: .line 315
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
        12: .line 316
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
        13: .line 317
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getProperties:()Ljava/util/Properties;
        14: .line 313
            invokeinterface org.hibernate.cache.spi.QueryCacheFactory.getQueryCache:(Ljava/lang/String;Lorg/hibernate/cache/spi/UpdateTimestampsCache;Lorg/hibernate/cfg/Settings;Ljava/util/Properties;)Lorg/hibernate/cache/spi/QueryCache;
        15: .line 312
            astore 2 /* currentQueryCache */
        16: .line 319
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCaches:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regionName */
            aload 2 /* currentQueryCache */
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 320
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            aload 2 /* currentQueryCache */
            invokeinterface org.hibernate.cache.spi.QueryCache.getRegion:()Lorg/hibernate/cache/spi/QueryResultsRegion;
            invokeinterface org.hibernate.cache.spi.QueryResultsRegion.getName:()Ljava/lang/String;
            aload 2 /* currentQueryCache */
            invokeinterface org.hibernate.cache.spi.QueryCache.getRegion:()Lorg/hibernate/cache/spi/QueryResultsRegion;
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 321
            goto 21
        19: .line 323
      StackMap locals: org.hibernate.cache.spi.QueryCache java.util.concurrent.ConcurrentMap
      StackMap stack:
            aload 2 /* currentQueryCache */
            aload 3
            monitorexit
        20: areturn
        21: .line 309
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        22: goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: aload 3
            monitorexit
        24: athrow
        25: .line 327
      StackMap locals:
      StackMap stack:
            aload 2 /* currentQueryCache */
            areturn
        end local 2 // org.hibernate.cache.spi.QueryCache currentQueryCache
        end local 1 // java.lang.String regionName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Lorg/hibernate/internal/CacheImpl;
            0   26     1         regionName  Ljava/lang/String;
            5   26     2  currentQueryCache  Lorg/hibernate/cache/spi/QueryCache;
      Exception table:
        from    to  target  type
           7    20      23  any
          21    22      23  any
          23    24      23  any
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
            Name  Flags
      regionName  

  public void addCacheRegion(java.lang.String, org.hibernate.cache.spi.Region);
    descriptor: (Ljava/lang/String;Lorg/hibernate/cache/spi/Region;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String name
        start local 2 // org.hibernate.cache.spi.Region region
         0: .line 332
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* name */
            aload 2 /* region */
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 333
            return
        end local 2 // org.hibernate.cache.spi.Region region
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/hibernate/internal/CacheImpl;
            0    2     1    name  Ljava/lang/String;
            0    2     2  region  Lorg/hibernate/cache/spi/Region;
    MethodParameters:
        Name  Flags
      name    
      region  

  public org.hibernate.cache.spi.UpdateTimestampsCache getUpdateTimestampsCache();
    descriptor: ()Lorg/hibernate/cache/spi/UpdateTimestampsCache;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 337
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.updateTimestampsCache:Lorg/hibernate/cache/spi/UpdateTimestampsCache;
            areturn
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/CacheImpl;

  public void evictQueries();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 342
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.settings:Lorg/hibernate/cfg/Settings;
            invokevirtual org.hibernate.cfg.Settings.isQueryCacheEnabled:()Z
            ifeq 2
         1: .line 343
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.queryCache:Lorg/hibernate/cache/spi/QueryCache;
            invokeinterface org.hibernate.cache.spi.QueryCache.clear:()V
         2: .line 345
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/internal/CacheImpl;
    Exceptions:
      throws org.hibernate.HibernateException

  public org.hibernate.cache.spi.Region getSecondLevelCacheRegion(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/cache/spi/Region;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String regionName
         0: .line 349
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regionName */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.Region
            areturn
        end local 1 // java.lang.String regionName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/CacheImpl;
            0    1     1  regionName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      regionName  

  public org.hibernate.cache.spi.Region getNaturalIdCacheRegion(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/cache/spi/Region;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.CacheImpl this
        start local 1 // java.lang.String regionName
         0: .line 354
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* regionName */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.cache.spi.Region
            areturn
        end local 1 // java.lang.String regionName
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/hibernate/internal/CacheImpl;
            0    1     1  regionName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      regionName  

  public java.util.Map<java.lang.String, org.hibernate.cache.spi.Region> getAllSecondLevelCacheRegions();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 360
            new java.util.HashMap
            dup
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.allCacheRegions:Ljava/util/concurrent/ConcurrentMap;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/CacheImpl;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/cache/spi/Region;>;

  public org.hibernate.cache.spi.RegionFactory getRegionFactory();
    descriptor: ()Lorg/hibernate/cache/spi/RegionFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 365
            aload 0 /* this */
            getfield org.hibernate.internal.CacheImpl.regionFactory:Lorg/hibernate/cache/spi/RegionFactory;
            areturn
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/CacheImpl;

  public void evictAllRegions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.CacheImpl this
         0: .line 370
            aload 0 /* this */
            invokevirtual org.hibernate.internal.CacheImpl.evictCollectionRegions:()V
         1: .line 371
            aload 0 /* this */
            invokevirtual org.hibernate.internal.CacheImpl.evictDefaultQueryRegion:()V
         2: .line 372
            aload 0 /* this */
            invokevirtual org.hibernate.internal.CacheImpl.evictEntityRegions:()V
         3: .line 373
            aload 0 /* this */
            invokevirtual org.hibernate.internal.CacheImpl.evictQueryRegions:()V
         4: .line 374
            aload 0 /* this */
            invokevirtual org.hibernate.internal.CacheImpl.evictNaturalIdRegions:()V
         5: .line 375
            return
        end local 0 // org.hibernate.internal.CacheImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hibernate/internal/CacheImpl;
}
SourceFile: "CacheImpl.java"