public class org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl implements org.hibernate.engine.jdbc.connections.spi.ConnectionProvider, org.hibernate.service.spi.Configurable, org.hibernate.service.spi.Stoppable, org.hibernate.service.spi.ServiceRegistryAwareService
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl
  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

  public static final java.lang.String MIN_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "hibernate.connection.min_pool_size"

  public static final java.lang.String INITIAL_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "hibernate.connection.initial_pool_size"

  public static final java.lang.String VALIDATION_INTERVAL;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "hibernate.connection.pool_validation_interval"

  private boolean active;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.ConcurrentLinkedQueue<java.sql.Connection> connections;
    descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/ConcurrentLinkedQueue<Ljava/sql/Connection;>;

  private org.hibernate.engine.jdbc.connections.internal.ConnectionCreator connectionCreator;
    descriptor: Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.ScheduledExecutorService executorService;
    descriptor: Ljava/util/concurrent/ScheduledExecutorService;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry;
    descriptor: Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 67
            ldc Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/CoreMessageLogger;
            putstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 72
            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.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.active:Z
         2: .line 76
            aload 0 /* this */
            new java.util.concurrent.ConcurrentLinkedQueue
            dup
            invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
            putfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connections:Ljava/util/concurrent/ConcurrentLinkedQueue;
         3: .line 64
            return
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;

  public void injectServices(org.hibernate.service.spi.ServiceRegistryImplementor);
    descriptor: (Lorg/hibernate/service/spi/ServiceRegistryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
        start local 1 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry
         0: .line 88
            aload 0 /* this */
            aload 1 /* serviceRegistry */
            putfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
         1: .line 89
            return
        end local 1 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            0    2     1  serviceRegistry  Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    MethodParameters:
                 Name  Flags
      serviceRegistry  

  public void configure(java.util.Map);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
        start local 1 // java.util.Map configurationValues
         0: .line 93
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.usingHibernateBuiltInConnectionPool:()V
         1: .line 95
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* configurationValues */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator:(Ljava/util/Map;)Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
            putfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connectionCreator:Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
         2: .line 97
            ldc "hibernate.connection.min_pool_size"
            aload 1 /* configurationValues */
            iconst_1
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            istore 2 /* minSize */
        start local 2 // int minSize
         3: .line 98
            ldc "hibernate.connection.pool_size"
            aload 1 /* configurationValues */
            bipush 20
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            istore 3 /* maxSize */
        start local 3 // int maxSize
         4: .line 99
            ldc "hibernate.connection.initial_pool_size"
            aload 1 /* configurationValues */
            iload 2 /* minSize */
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInt:(Ljava/lang/String;Ljava/util/Map;I)I
            istore 4 /* initialSize */
        start local 4 // int initialSize
         5: .line 100
            ldc "hibernate.connection.pool_validation_interval"
            aload 1 /* configurationValues */
            bipush 30
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getLong:(Ljava/lang/String;Ljava/util/Map;I)J
            lstore 5 /* validationInterval */
        start local 5 // long validationInterval
         6: .line 102
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            iload 3 /* maxSize */
            iload 2 /* minSize */
            invokeinterface org.hibernate.internal.CoreMessageLogger.hibernateConnectionPoolSize:(II)V
         7: .line 104
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Initializing Connection pool with %s Connections"
            iload 4 /* initialSize */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 105
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         9: goto 12
        10: .line 106
      StackMap locals: org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl java.util.Map int int int long int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connections:Ljava/util/concurrent/ConcurrentLinkedQueue;
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connectionCreator:Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
            invokeinterface org.hibernate.engine.jdbc.connections.internal.ConnectionCreator.createConnection:()Ljava/sql/Connection;
            invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
            pop
        11: .line 105
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 7 /* i */
            iload 4 /* initialSize */
            if_icmplt 10
        end local 7 // int i
        13: .line 109
            aload 0 /* this */
            invokestatic java.util.concurrent.Executors.newSingleThreadScheduledExecutor:()Ljava/util/concurrent/ScheduledExecutorService;
            putfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.executorService:Ljava/util/concurrent/ScheduledExecutorService;
        14: .line 110
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.executorService:Ljava/util/concurrent/ScheduledExecutorService;
        15: .line 111
            new org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$1
            dup
            aload 0 /* this */
            iload 2 /* minSize */
            iload 3 /* maxSize */
            invokespecial org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$1.<init>:(Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;II)V
        16: .line 146
            lload 5 /* validationInterval */
        17: .line 147
            lload 5 /* validationInterval */
        18: .line 148
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
        19: .line 110
            invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            pop
        20: .line 150
            return
        end local 5 // long validationInterval
        end local 4 // int initialSize
        end local 3 // int maxSize
        end local 2 // int minSize
        end local 1 // java.util.Map configurationValues
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   21     0                 this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            0   21     1  configurationValues  Ljava/util/Map;
            3   21     2              minSize  I
            4   21     3              maxSize  I
            5   21     4          initialSize  I
            6   21     5   validationInterval  J
            9   13     7                    i  I
    MethodParameters:
                     Name  Flags
      configurationValues  

  private org.hibernate.engine.jdbc.connections.internal.ConnectionCreator buildCreator(java.util.Map);
    descriptor: (Ljava/util/Map;)Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
        start local 1 // java.util.Map configurationValues
         0: .line 153
            new org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder
            dup
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            invokespecial org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder.<init>:(Lorg/hibernate/service/spi/ServiceRegistryImplementor;)V
            astore 2 /* connectionCreatorBuilder */
        start local 2 // org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder connectionCreatorBuilder
         1: .line 155
            aload 1 /* configurationValues */
            ldc "hibernate.connection.driver_class"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* driverClassName */
        start local 3 // java.lang.String driverClassName
         2: .line 156
            aload 2 /* connectionCreatorBuilder */
            aload 0 /* this */
            aload 3 /* driverClassName */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible:(Ljava/lang/String;)Ljava/sql/Driver;
            invokevirtual org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder.setDriver:(Ljava/sql/Driver;)V
         3: .line 158
            aload 1 /* configurationValues */
            ldc "hibernate.connection.url"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* url */
        start local 4 // java.lang.String url
         4: .line 159
            aload 4 /* url */
            ifnonnull 8
         5: .line 160
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "hibernate.connection.url"
            invokeinterface org.hibernate.internal.CoreMessageLogger.jdbcUrlNotSpecified:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         6: .line 161
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            aload 5 /* msg */
            invokeinterface org.hibernate.internal.CoreMessageLogger.error:(Ljava/lang/Object;)V
         7: .line 162
            new org.hibernate.HibernateException
            dup
            aload 5 /* msg */
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
         8: .line 164
      StackMap locals: org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* connectionCreatorBuilder */
            aload 4 /* url */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder.setUrl:(Ljava/lang/String;)V
         9: .line 166
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            aload 3 /* driverClassName */
            aload 4 /* url */
            invokeinterface org.hibernate.internal.CoreMessageLogger.usingDriver:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 168
            aload 1 /* configurationValues */
            invokestatic org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator.getConnectionProperties:(Ljava/util/Map;)Ljava/util/Properties;
            astore 5 /* connectionProps */
        start local 5 // java.util.Properties connectionProps
        11: .line 171
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 14
        12: .line 172
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            aload 5 /* connectionProps */
            invokeinterface org.hibernate.internal.CoreMessageLogger.connectionProperties:(Ljava/util/Properties;)V
        13: .line 173
            goto 15
        14: .line 175
      StackMap locals: java.util.Properties
      StackMap stack:
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            aload 5 /* connectionProps */
            ldc "password"
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.maskOut:(Ljava/util/Properties;Ljava/lang/String;)Ljava/util/Properties;
            invokeinterface org.hibernate.internal.CoreMessageLogger.connectionProperties:(Ljava/util/Properties;)V
        15: .line 177
      StackMap locals:
      StackMap stack:
            aload 2 /* connectionCreatorBuilder */
            aload 5 /* connectionProps */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder.setConnectionProps:(Ljava/util/Properties;)V
        16: .line 179
            ldc "hibernate.connection.autocommit"
            aload 1 /* configurationValues */
            iconst_0
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getBoolean:(Ljava/lang/String;Ljava/util/Map;Z)Z
            istore 6 /* autoCommit */
        start local 6 // boolean autoCommit
        17: .line 180
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            iload 6 /* autoCommit */
            invokeinterface org.hibernate.internal.CoreMessageLogger.autoCommitMode:(Z)V
        18: .line 181
            aload 2 /* connectionCreatorBuilder */
            iload 6 /* autoCommit */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder.setAutoCommit:(Z)V
        19: .line 183
            ldc "hibernate.connection.isolation"
            aload 1 /* configurationValues */
            invokestatic org.hibernate.internal.util.config.ConfigurationHelper.getInteger:(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Integer;
            astore 7 /* isolation */
        start local 7 // java.lang.Integer isolation
        20: .line 184
            aload 7 /* isolation */
            ifnull 22
        21: .line 185
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            aload 7 /* isolation */
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic org.hibernate.cfg.Environment.isolationLevelToString:(I)Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.jdbcIsolationLevel:(Ljava/lang/String;)V
        22: .line 187
      StackMap locals: int java.lang.Integer
      StackMap stack:
            aload 2 /* connectionCreatorBuilder */
            aload 7 /* isolation */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder.setIsolation:(Ljava/lang/Integer;)V
        23: .line 189
            aload 2 /* connectionCreatorBuilder */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder.build:()Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
            areturn
        end local 7 // java.lang.Integer isolation
        end local 6 // boolean autoCommit
        end local 5 // java.util.Properties connectionProps
        end local 4 // java.lang.String url
        end local 3 // java.lang.String driverClassName
        end local 2 // org.hibernate.engine.jdbc.connections.internal.ConnectionCreatorBuilder connectionCreatorBuilder
        end local 1 // java.util.Map configurationValues
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   24     0                      this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            0   24     1       configurationValues  Ljava/util/Map;
            1   24     2  connectionCreatorBuilder  Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreatorBuilder;
            2   24     3           driverClassName  Ljava/lang/String;
            4   24     4                       url  Ljava/lang/String;
            6    8     5                       msg  Ljava/lang/String;
           11   24     5           connectionProps  Ljava/util/Properties;
           17   24     6                autoCommit  Z
           20   24     7                 isolation  Ljava/lang/Integer;
    MethodParameters:
                     Name  Flags
      configurationValues  

  private java.sql.Driver loadDriverIfPossible(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/sql/Driver;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
        start local 1 // java.lang.String driverClassName
         0: .line 193
            aload 1 /* driverClassName */
            ifnonnull 3
         1: .line 194
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "No driver class specified"
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
         2: .line 195
            aconst_null
            areturn
         3: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ifnull 10
         4: .line 199
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ldc Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.boot.registry.classloading.spi.ClassLoaderService
            astore 2 /* classLoaderService */
        start local 2 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
         5: .line 200
            aload 2 /* classLoaderService */
            aload 1 /* driverClassName */
            invokeinterface org.hibernate.boot.registry.classloading.spi.ClassLoaderService.classForName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* driverClass */
        start local 3 // java.lang.Class driverClass
         6: .line 202
            aload 3 /* driverClass */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast java.sql.Driver
         7: areturn
         8: .line 204
      StackMap locals: org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl java.lang.String org.hibernate.boot.registry.classloading.spi.ClassLoaderService java.lang.Class
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         9: .line 205
            new org.hibernate.service.spi.ServiceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Specified JDBC Driver "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* driverClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " could not be loaded"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
            invokespecial org.hibernate.service.spi.ServiceException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.lang.Class driverClass
        end local 2 // org.hibernate.boot.registry.classloading.spi.ClassLoaderService classLoaderService
        10: .line 210
      StackMap locals:
      StackMap stack:
            aload 1 /* driverClassName */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast java.sql.Driver
        11: areturn
        12: .line 212
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        13: .line 214
            aload 1 /* driverClassName */
            invokestatic org.hibernate.internal.util.ReflectHelper.classForName:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast java.sql.Driver
        14: areturn
        15: .line 216
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e2 */
        start local 2 // java.lang.Exception e2
        16: .line 217
            new org.hibernate.service.spi.ServiceException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Specified JDBC Driver "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* driverClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " could not be loaded"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e2 */
            invokespecial org.hibernate.service.spi.ServiceException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e2
        end local 1 // java.lang.String driverClassName
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            0   17     1     driverClassName  Ljava/lang/String;
            5   10     2  classLoaderService  Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;
            6   10     3         driverClass  Ljava/lang/Class<Ljava/sql/Driver;>;
            9   10     4                   e  Ljava/lang/Exception;
           16   17     2                  e2  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Exception
          10    11      12  Class java.lang.Exception
          13    14      15  Class java.lang.Exception
    MethodParameters:
                 Name  Flags
      driverClassName  

  public java.sql.Connection getConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
         0: .line 227
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.active:Z
            ifne 2
         1: .line 228
            new org.hibernate.HibernateException
            dup
            ldc "Connection pool is no longer active"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connections:Ljava/util/concurrent/ConcurrentLinkedQueue;
            invokevirtual java.util.concurrent.ConcurrentLinkedQueue.poll:()Ljava/lang/Object;
            checkcast java.sql.Connection
            dup
            astore 1 /* connection */
        start local 1 // java.sql.Connection connection
         3: ifnonnull 5
         4: .line 233
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connectionCreator:Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
            invokeinterface org.hibernate.engine.jdbc.connections.internal.ConnectionCreator.createConnection:()Ljava/sql/Connection;
            astore 1 /* connection */
         5: .line 236
      StackMap locals: java.sql.Connection
      StackMap stack:
            aload 1 /* connection */
            areturn
        end local 1 // java.sql.Connection connection
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            3    6     1  connection  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException

  public void closeConnection(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
        start local 1 // java.sql.Connection conn
         0: .line 241
            aload 1 /* conn */
            ifnonnull 2
         1: .line 242
            return
         2: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connections:Ljava/util/concurrent/ConcurrentLinkedQueue;
            aload 1 /* conn */
            invokevirtual java.util.concurrent.ConcurrentLinkedQueue.offer:(Ljava/lang/Object;)Z
            pop
         3: .line 246
            return
        end local 1 // java.sql.Connection conn
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            0    4     1  conn  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      conn  

  public boolean supportsAggressiveRelease();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
         0: .line 251
            iconst_0
            ireturn
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;

  public boolean isUnwrappableAs(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
        start local 1 // java.lang.Class unwrapType
         0: .line 256
            ldc Lorg/hibernate/engine/jdbc/connections/spi/ConnectionProvider;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 257
            ldc Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 3
         2: .line 256
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // java.lang.Class unwrapType
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            0    4     1  unwrapType  Ljava/lang/Class;
    MethodParameters:
            Name  Flags
      unwrapType  

  public <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
        start local 1 // java.lang.Class unwrapType
         0: .line 263
            ldc Lorg/hibernate/engine/jdbc/connections/spi/ConnectionProvider;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 264
            ldc Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 3
         2: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         3: .line 268
      StackMap locals:
      StackMap stack:
            new org.hibernate.service.UnknownUnwrapTypeException
            dup
            aload 1 /* unwrapType */
            invokespecial org.hibernate.service.UnknownUnwrapTypeException.<init>:(Ljava/lang/Class;)V
            athrow
        end local 1 // java.lang.Class unwrapType
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            0    4     1  unwrapType  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      unwrapType  

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
         0: .line 277
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.active:Z
            ifne 2
         1: .line 278
            return
         2: .line 281
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connectionCreator:Lorg/hibernate/engine/jdbc/connections/internal/ConnectionCreator;
            invokeinterface org.hibernate.engine.jdbc.connections.internal.ConnectionCreator.getUrl:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.cleaningUpConnectionPool:(Ljava/lang/String;)V
         3: .line 283
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.active:Z
         4: .line 285
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.executorService:Ljava/util/concurrent/ScheduledExecutorService;
            ifnull 6
         5: .line 286
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.executorService:Ljava/util/concurrent/ScheduledExecutorService;
            invokeinterface java.util.concurrent.ScheduledExecutorService.shutdown:()V
         6: .line 288
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.executorService:Ljava/util/concurrent/ScheduledExecutorService;
         7: .line 290
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.connections:Ljava/util/concurrent/ConcurrentLinkedQueue;
            invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
            astore 2
            goto 13
      StackMap locals: org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl top java.util.Iterator
      StackMap stack:
         8: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.sql.Connection
            astore 1 /* connection */
        start local 1 // java.sql.Connection connection
         9: .line 292
            aload 1 /* connection */
            invokeinterface java.sql.Connection.close:()V
        10: .line 293
            goto 13
        11: .line 294
      StackMap locals: org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl java.sql.Connection java.util.Iterator
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
        12: .line 295
            getstatic org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.log:Lorg/hibernate/internal/CoreMessageLogger;
            aload 3 /* e */
            invokeinterface org.hibernate.internal.CoreMessageLogger.unableToClosePooledConnection:(Ljava/sql/SQLException;)V
        end local 3 // java.sql.SQLException e
        end local 1 // java.sql.Connection connection
        13: .line 290
      StackMap locals: org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        14: .line 298
            return
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
            9   13     1  connection  Ljava/sql/Connection;
           12   13     3           e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           9    10      11  Class java.sql.SQLException

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
         0: .line 303
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.active:Z
            ifeq 2
         1: .line 304
            aload 0 /* this */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.stop:()V
         2: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         3: .line 307
            return
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl;
    Exceptions:
      throws java.lang.Throwable
}
SourceFile: "DriverManagerConnectionProviderImpl.java"
NestMembers:
  org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$1
InnerClasses:
  org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$1