public class com.zaxxer.hikari.HikariDataSource extends com.zaxxer.hikari.HikariConfig implements javax.sql.DataSource, java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.zaxxer.hikari.HikariDataSource
  super_class: com.zaxxer.hikari.HikariConfig
{
  private static final org.slf4j.Logger LOGGER;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicBoolean isShutdown;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.zaxxer.hikari.pool.HikariPool fastPathPool;
    descriptor: Lcom/zaxxer/hikari/pool/HikariPool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile com.zaxxer.hikari.pool.HikariPool pool;
    descriptor: Lcom/zaxxer/hikari/pool/HikariPool;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 42
            ldc Lcom/zaxxer/hikari/HikariDataSource;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 61
            aload 0 /* this */
            invokespecial com.zaxxer.hikari.HikariConfig.<init>:()V
         1: .line 44
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            putfield com.zaxxer.hikari.HikariDataSource.isShutdown:Ljava/util/concurrent/atomic/AtomicBoolean;
         2: .line 62
            aload 0 /* this */
            aconst_null
            putfield com.zaxxer.hikari.HikariDataSource.fastPathPool:Lcom/zaxxer/hikari/pool/HikariPool;
         3: .line 63
            return
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/zaxxer/hikari/HikariDataSource;

  public void <init>(com.zaxxer.hikari.HikariConfig);
    descriptor: (Lcom/zaxxer/hikari/HikariConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // com.zaxxer.hikari.HikariConfig configuration
         0: .line 75
            aload 0 /* this */
            invokespecial com.zaxxer.hikari.HikariConfig.<init>:()V
         1: .line 44
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            putfield com.zaxxer.hikari.HikariDataSource.isShutdown:Ljava/util/concurrent/atomic/AtomicBoolean;
         2: .line 77
            aload 1 /* configuration */
            invokevirtual com.zaxxer.hikari.HikariConfig.validate:()V
         3: .line 78
            aload 1 /* configuration */
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariConfig.copyStateTo:(Lcom/zaxxer/hikari/HikariConfig;)V
         4: .line 80
            getstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            ldc "{} - Starting..."
            aload 1 /* configuration */
            invokevirtual com.zaxxer.hikari.HikariConfig.getPoolName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 81
            aload 0 /* this */
            aload 0 /* this */
            new com.zaxxer.hikari.pool.HikariPool
            dup
            aload 0 /* this */
            invokespecial com.zaxxer.hikari.pool.HikariPool.<init>:(Lcom/zaxxer/hikari/HikariConfig;)V
            dup_x1
            putfield com.zaxxer.hikari.HikariDataSource.fastPathPool:Lcom/zaxxer/hikari/pool/HikariPool;
            putfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
         6: .line 82
            getstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            ldc "{} - Start completed."
            aload 1 /* configuration */
            invokevirtual com.zaxxer.hikari.HikariConfig.getPoolName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 84
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.seal:()V
         8: .line 85
            return
        end local 1 // com.zaxxer.hikari.HikariConfig configuration
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/zaxxer/hikari/HikariDataSource;
            0    9     1  configuration  Lcom/zaxxer/hikari/HikariConfig;
    MethodParameters:
               Name  Flags
      configuration  

  public java.sql.Connection getConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 95
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.isClosed:()Z
            ifeq 2
         1: .line 96
            new java.sql.SQLException
            dup
            new java.lang.StringBuilder
            dup
            ldc "HikariDataSource "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " has been closed."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.fastPathPool:Lcom/zaxxer/hikari/pool/HikariPool;
            ifnull 4
         3: .line 100
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.fastPathPool:Lcom/zaxxer/hikari/pool/HikariPool;
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getConnection:()Ljava/sql/Connection;
            areturn
         4: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 1 /* result */
        start local 1 // com.zaxxer.hikari.pool.HikariPool result
         5: .line 105
            aload 1 /* result */
            ifnonnull 23
         6: .line 106
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         7: .line 107
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 1 /* result */
         8: .line 108
            aload 1 /* result */
            ifnonnull 19
         9: .line 109
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.validate:()V
        10: .line 110
            getstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            ldc "{} - Starting..."
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getPoolName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 112
            aload 0 /* this */
            new com.zaxxer.hikari.pool.HikariPool
            dup
            aload 0 /* this */
            invokespecial com.zaxxer.hikari.pool.HikariPool.<init>:(Lcom/zaxxer/hikari/HikariConfig;)V
            dup
            astore 1 /* result */
            putfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
        12: .line 113
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.seal:()V
        13: .line 114
            goto 18
        14: .line 115
      StackMap locals: com.zaxxer.hikari.HikariDataSource com.zaxxer.hikari.pool.HikariPool com.zaxxer.hikari.HikariDataSource
      StackMap stack: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException
            astore 3 /* pie */
        start local 3 // com.zaxxer.hikari.pool.HikariPool$PoolInitializationException pie
        15: .line 116
            aload 3 /* pie */
            invokevirtual com.zaxxer.hikari.pool.HikariPool$PoolInitializationException.getCause:()Ljava/lang/Throwable;
            instanceof java.sql.SQLException
            ifeq 17
        16: .line 117
            aload 3 /* pie */
            invokevirtual com.zaxxer.hikari.pool.HikariPool$PoolInitializationException.getCause:()Ljava/lang/Throwable;
            checkcast java.sql.SQLException
            athrow
        17: .line 120
      StackMap locals: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException
      StackMap stack:
            aload 3 /* pie */
            athrow
        end local 3 // com.zaxxer.hikari.pool.HikariPool$PoolInitializationException pie
        18: .line 123
      StackMap locals:
      StackMap stack:
            getstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            ldc "{} - Start completed."
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getPoolName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        19: .line 106
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        20: goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: aload 2
            monitorexit
        22: athrow
        23: .line 128
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getConnection:()Ljava/sql/Connection;
            areturn
        end local 1 // com.zaxxer.hikari.pool.HikariPool result
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   24     0    this  Lcom/zaxxer/hikari/HikariDataSource;
            5   24     1  result  Lcom/zaxxer/hikari/pool/HikariPool;
           15   18     3     pie  Lcom/zaxxer/hikari/pool/HikariPool$PoolInitializationException;
      Exception table:
        from    to  target  type
          11    13      14  Class com.zaxxer.hikari.pool.HikariPool$PoolInitializationException
           7    20      21  any
          21    22      21  any
    Exceptions:
      throws java.sql.SQLException

  public java.sql.Connection getConnection(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // java.lang.String username
        start local 2 // java.lang.String password
         0: .line 135
            new java.sql.SQLFeatureNotSupportedException
            dup
            invokespecial java.sql.SQLFeatureNotSupportedException.<init>:()V
            athrow
        end local 2 // java.lang.String password
        end local 1 // java.lang.String username
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/zaxxer/hikari/HikariDataSource;
            0    1     1  username  Ljava/lang/String;
            0    1     2  password  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      username  
      password  

  public java.io.PrintWriter getLogWriter();
    descriptor: ()Ljava/io/PrintWriter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 142
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 1 /* p */
        start local 1 // com.zaxxer.hikari.pool.HikariPool p
         1: .line 143
            aload 1 /* p */
            ifnull 2
            aload 1 /* p */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getUnwrappedDataSource:()Ljavax/sql/DataSource;
            invokeinterface javax.sql.DataSource.getLogWriter:()Ljava/io/PrintWriter;
            goto 3
      StackMap locals: com.zaxxer.hikari.pool.HikariPool
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.io.PrintWriter
         3: areturn
        end local 1 // com.zaxxer.hikari.pool.HikariPool p
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/zaxxer/hikari/HikariDataSource;
            1    4     1     p  Lcom/zaxxer/hikari/pool/HikariPool;
    Exceptions:
      throws java.sql.SQLException

  public void setLogWriter(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // java.io.PrintWriter out
         0: .line 150
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 2 /* p */
        start local 2 // com.zaxxer.hikari.pool.HikariPool p
         1: .line 151
            aload 2 /* p */
            ifnull 3
         2: .line 152
            aload 2 /* p */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getUnwrappedDataSource:()Ljavax/sql/DataSource;
            aload 1 /* out */
            invokeinterface javax.sql.DataSource.setLogWriter:(Ljava/io/PrintWriter;)V
         3: .line 154
      StackMap locals: com.zaxxer.hikari.pool.HikariPool
      StackMap stack:
            return
        end local 2 // com.zaxxer.hikari.pool.HikariPool p
        end local 1 // java.io.PrintWriter out
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/zaxxer/hikari/HikariDataSource;
            0    4     1   out  Ljava/io/PrintWriter;
            1    4     2     p  Lcom/zaxxer/hikari/pool/HikariPool;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      out   

  public void setLoginTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // int seconds
         0: .line 160
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 2 /* p */
        start local 2 // com.zaxxer.hikari.pool.HikariPool p
         1: .line 161
            aload 2 /* p */
            ifnull 3
         2: .line 162
            aload 2 /* p */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getUnwrappedDataSource:()Ljavax/sql/DataSource;
            iload 1 /* seconds */
            invokeinterface javax.sql.DataSource.setLoginTimeout:(I)V
         3: .line 164
      StackMap locals: com.zaxxer.hikari.pool.HikariPool
      StackMap stack:
            return
        end local 2 // com.zaxxer.hikari.pool.HikariPool p
        end local 1 // int seconds
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/zaxxer/hikari/HikariDataSource;
            0    4     1  seconds  I
            1    4     2        p  Lcom/zaxxer/hikari/pool/HikariPool;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      seconds  

  public int getLoginTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 170
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 1 /* p */
        start local 1 // com.zaxxer.hikari.pool.HikariPool p
         1: .line 171
            aload 1 /* p */
            ifnull 2
            aload 1 /* p */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getUnwrappedDataSource:()Ljavax/sql/DataSource;
            invokeinterface javax.sql.DataSource.getLoginTimeout:()I
            goto 3
      StackMap locals: com.zaxxer.hikari.pool.HikariPool
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // com.zaxxer.hikari.pool.HikariPool p
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/zaxxer/hikari/HikariDataSource;
            1    4     1     p  Lcom/zaxxer/hikari/pool/HikariPool;
    Exceptions:
      throws java.sql.SQLException

  public java.util.logging.Logger getParentLogger();
    descriptor: ()Ljava/util/logging/Logger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 178
            new java.sql.SQLFeatureNotSupportedException
            dup
            invokespecial java.sql.SQLFeatureNotSupportedException.<init>:()V
            athrow
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/zaxxer/hikari/HikariDataSource;
    Exceptions:
      throws java.sql.SQLFeatureNotSupportedException

  public <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // java.lang.Class iface
         0: .line 186
            aload 1 /* iface */
            aload 0 /* this */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 187
            aload 0 /* this */
            areturn
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 2 /* p */
        start local 2 // com.zaxxer.hikari.pool.HikariPool p
         3: .line 191
            aload 2 /* p */
            ifnull 9
         4: .line 192
            aload 2 /* p */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getUnwrappedDataSource:()Ljavax/sql/DataSource;
            astore 3 /* unwrappedDataSource */
        start local 3 // javax.sql.DataSource unwrappedDataSource
         5: .line 193
            aload 1 /* iface */
            aload 3 /* unwrappedDataSource */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 194
            aload 3 /* unwrappedDataSource */
            areturn
         7: .line 197
      StackMap locals: com.zaxxer.hikari.pool.HikariPool javax.sql.DataSource
      StackMap stack:
            aload 3 /* unwrappedDataSource */
            ifnull 9
         8: .line 198
            aload 3 /* unwrappedDataSource */
            aload 1 /* iface */
            invokeinterface javax.sql.DataSource.unwrap:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // javax.sql.DataSource unwrappedDataSource
         9: .line 202
      StackMap locals:
      StackMap stack:
            new java.sql.SQLException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Wrapped DataSource is not an instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* iface */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.zaxxer.hikari.pool.HikariPool p
        end local 1 // java.lang.Class iface
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lcom/zaxxer/hikari/HikariDataSource;
            0   10     1                iface  Ljava/lang/Class<TT;>;
            3   10     2                    p  Lcom/zaxxer/hikari/pool/HikariPool;
            5    9     3  unwrappedDataSource  Ljavax/sql/DataSource;
    Exceptions:
      throws java.sql.SQLException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      iface  

  public boolean isWrapperFor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // java.lang.Class iface
         0: .line 209
            aload 1 /* iface */
            aload 0 /* this */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 210
            iconst_1
            ireturn
         2: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 2 /* p */
        start local 2 // com.zaxxer.hikari.pool.HikariPool p
         3: .line 214
            aload 2 /* p */
            ifnull 9
         4: .line 215
            aload 2 /* p */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.getUnwrappedDataSource:()Ljavax/sql/DataSource;
            astore 3 /* unwrappedDataSource */
        start local 3 // javax.sql.DataSource unwrappedDataSource
         5: .line 216
            aload 1 /* iface */
            aload 3 /* unwrappedDataSource */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 217
            iconst_1
            ireturn
         7: .line 220
      StackMap locals: com.zaxxer.hikari.pool.HikariPool javax.sql.DataSource
      StackMap stack:
            aload 3 /* unwrappedDataSource */
            ifnull 9
         8: .line 221
            aload 3 /* unwrappedDataSource */
            aload 1 /* iface */
            invokeinterface javax.sql.DataSource.isWrapperFor:(Ljava/lang/Class;)Z
            ireturn
        end local 3 // javax.sql.DataSource unwrappedDataSource
         9: .line 225
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.zaxxer.hikari.pool.HikariPool p
        end local 1 // java.lang.Class iface
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lcom/zaxxer/hikari/HikariDataSource;
            0   10     1                iface  Ljava/lang/Class<*>;
            3   10     2                    p  Lcom/zaxxer/hikari/pool/HikariPool;
            5    9     3  unwrappedDataSource  Ljavax/sql/DataSource;
    Exceptions:
      throws java.sql.SQLException
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      iface  

  public void setMetricRegistry(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // java.lang.Object metricRegistry
         0: .line 236
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getMetricRegistry:()Ljava/lang/Object;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* isAlreadySet */
        start local 2 // boolean isAlreadySet
         3: .line 237
            aload 0 /* this */
            aload 1 /* metricRegistry */
            invokespecial com.zaxxer.hikari.HikariConfig.setMetricRegistry:(Ljava/lang/Object;)V
         4: .line 239
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 3 /* p */
        start local 3 // com.zaxxer.hikari.pool.HikariPool p
         5: .line 240
            aload 3 /* p */
            ifnull 9
         6: .line 241
            iload 2 /* isAlreadySet */
            ifeq 8
         7: .line 242
            new java.lang.IllegalStateException
            dup
            ldc "MetricRegistry can only be set one time"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 245
      StackMap locals: int com.zaxxer.hikari.pool.HikariPool
      StackMap stack:
            aload 3 /* p */
            aload 0 /* this */
            invokespecial com.zaxxer.hikari.HikariConfig.getMetricRegistry:()Ljava/lang/Object;
            invokevirtual com.zaxxer.hikari.pool.HikariPool.setMetricRegistry:(Ljava/lang/Object;)V
         9: .line 248
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.zaxxer.hikari.pool.HikariPool p
        end local 2 // boolean isAlreadySet
        end local 1 // java.lang.Object metricRegistry
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lcom/zaxxer/hikari/HikariDataSource;
            0   10     1  metricRegistry  Ljava/lang/Object;
            3   10     2    isAlreadySet  Z
            5   10     3               p  Lcom/zaxxer/hikari/pool/HikariPool;
    MethodParameters:
                Name  Flags
      metricRegistry  

  public void setMetricsTrackerFactory(com.zaxxer.hikari.metrics.MetricsTrackerFactory);
    descriptor: (Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // com.zaxxer.hikari.metrics.MetricsTrackerFactory metricsTrackerFactory
         0: .line 254
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getMetricsTrackerFactory:()Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* isAlreadySet */
        start local 2 // boolean isAlreadySet
         3: .line 255
            aload 0 /* this */
            aload 1 /* metricsTrackerFactory */
            invokespecial com.zaxxer.hikari.HikariConfig.setMetricsTrackerFactory:(Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory;)V
         4: .line 257
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 3 /* p */
        start local 3 // com.zaxxer.hikari.pool.HikariPool p
         5: .line 258
            aload 3 /* p */
            ifnull 9
         6: .line 259
            iload 2 /* isAlreadySet */
            ifeq 8
         7: .line 260
            new java.lang.IllegalStateException
            dup
            ldc "MetricsTrackerFactory can only be set one time"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 263
      StackMap locals: int com.zaxxer.hikari.pool.HikariPool
      StackMap stack:
            aload 3 /* p */
            aload 0 /* this */
            invokespecial com.zaxxer.hikari.HikariConfig.getMetricsTrackerFactory:()Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory;
            invokevirtual com.zaxxer.hikari.pool.HikariPool.setMetricsTrackerFactory:(Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory;)V
         9: .line 266
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.zaxxer.hikari.pool.HikariPool p
        end local 2 // boolean isAlreadySet
        end local 1 // com.zaxxer.hikari.metrics.MetricsTrackerFactory metricsTrackerFactory
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lcom/zaxxer/hikari/HikariDataSource;
            0   10     1  metricsTrackerFactory  Lcom/zaxxer/hikari/metrics/MetricsTrackerFactory;
            3   10     2           isAlreadySet  Z
            5   10     3                      p  Lcom/zaxxer/hikari/pool/HikariPool;
    MethodParameters:
                       Name  Flags
      metricsTrackerFactory  

  public void setHealthCheckRegistry(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // java.lang.Object healthCheckRegistry
         0: .line 272
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getHealthCheckRegistry:()Ljava/lang/Object;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* isAlreadySet */
        start local 2 // boolean isAlreadySet
         3: .line 273
            aload 0 /* this */
            aload 1 /* healthCheckRegistry */
            invokespecial com.zaxxer.hikari.HikariConfig.setHealthCheckRegistry:(Ljava/lang/Object;)V
         4: .line 275
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 3 /* p */
        start local 3 // com.zaxxer.hikari.pool.HikariPool p
         5: .line 276
            aload 3 /* p */
            ifnull 9
         6: .line 277
            iload 2 /* isAlreadySet */
            ifeq 8
         7: .line 278
            new java.lang.IllegalStateException
            dup
            ldc "HealthCheckRegistry can only be set one time"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 281
      StackMap locals: int com.zaxxer.hikari.pool.HikariPool
      StackMap stack:
            aload 3 /* p */
            aload 0 /* this */
            invokespecial com.zaxxer.hikari.HikariConfig.getHealthCheckRegistry:()Ljava/lang/Object;
            invokevirtual com.zaxxer.hikari.pool.HikariPool.setHealthCheckRegistry:(Ljava/lang/Object;)V
         9: .line 284
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.zaxxer.hikari.pool.HikariPool p
        end local 2 // boolean isAlreadySet
        end local 1 // java.lang.Object healthCheckRegistry
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lcom/zaxxer/hikari/HikariDataSource;
            0   10     1  healthCheckRegistry  Ljava/lang/Object;
            3   10     2         isAlreadySet  Z
            5   10     3                    p  Lcom/zaxxer/hikari/pool/HikariPool;
    MethodParameters:
                     Name  Flags
      healthCheckRegistry  

  public boolean isRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 297
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            ifnull 1
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            getfield com.zaxxer.hikari.pool.HikariPool.poolState:I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/zaxxer/hikari/HikariDataSource;

  public com.zaxxer.hikari.HikariPoolMXBean getHikariPoolMXBean();
    descriptor: ()Lcom/zaxxer/hikari/HikariPoolMXBean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 309
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            areturn
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/zaxxer/hikari/HikariDataSource;

  public com.zaxxer.hikari.HikariConfigMXBean getHikariConfigMXBean();
    descriptor: ()Lcom/zaxxer/hikari/HikariConfigMXBean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 319
            aload 0 /* this */
            areturn
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/zaxxer/hikari/HikariDataSource;

  public void evictConnection(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.zaxxer.hikari.HikariDataSource this
        start local 1 // java.sql.Connection connection
         0: .line 332
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.isClosed:()Z
            ifne 3
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            dup
            astore 2 /* p */
        start local 2 // com.zaxxer.hikari.pool.HikariPool p
         1: ifnull 3
            aload 1 /* connection */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "com.zaxxer.hikari"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 333
            aload 2 /* p */
            aload 1 /* connection */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.evictConnection:(Ljava/sql/Connection;)V
        end local 2 // com.zaxxer.hikari.pool.HikariPool p
         3: .line 335
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.sql.Connection connection
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/zaxxer/hikari/HikariDataSource;
            0    4     1  connection  Ljava/sql/Connection;
            1    3     2           p  Lcom/zaxxer/hikari/pool/HikariPool;
    MethodParameters:
            Name  Flags
      connection  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 343
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.isShutdown:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.getAndSet:(Z)Z
            ifeq 2
         1: .line 344
            return
         2: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            astore 1 /* p */
        start local 1 // com.zaxxer.hikari.pool.HikariPool p
         3: .line 348
            aload 1 /* p */
            ifnull 11
         4: .line 350
            getstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            ldc "{} - Shutdown initiated..."
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getPoolName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 351
            aload 1 /* p */
            invokevirtual com.zaxxer.hikari.pool.HikariPool.shutdown:()V
         6: .line 352
            getstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            ldc "{} - Shutdown completed."
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getPoolName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 353
            goto 11
         8: .line 354
      StackMap locals: com.zaxxer.hikari.HikariDataSource com.zaxxer.hikari.pool.HikariPool
      StackMap stack: java.lang.InterruptedException
            astore 2 /* e */
        start local 2 // java.lang.InterruptedException e
         9: .line 355
            getstatic com.zaxxer.hikari.HikariDataSource.LOGGER:Lorg/slf4j/Logger;
            ldc "{} - Interrupted during closing"
            aload 0 /* this */
            invokevirtual com.zaxxer.hikari.HikariDataSource.getPoolName:()Ljava/lang/String;
            aload 2 /* e */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 356
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 2 // java.lang.InterruptedException e
        11: .line 359
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.zaxxer.hikari.pool.HikariPool p
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/zaxxer/hikari/HikariDataSource;
            3   12     1     p  Lcom/zaxxer/hikari/pool/HikariPool;
            9   11     2     e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           4     7       8  Class java.lang.InterruptedException

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 368
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.isShutdown:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ireturn
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/zaxxer/hikari/HikariDataSource;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.zaxxer.hikari.HikariDataSource this
         0: .line 375
            new java.lang.StringBuilder
            dup
            ldc "HikariDataSource ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.zaxxer.hikari.HikariDataSource.pool:Lcom/zaxxer/hikari/pool/HikariPool;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.zaxxer.hikari.HikariDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/zaxxer/hikari/HikariDataSource;
}
SourceFile: "HikariDataSource.java"
InnerClasses:
  public PoolInitializationException = com.zaxxer.hikari.pool.HikariPool$PoolInitializationException of com.zaxxer.hikari.pool.HikariPool