public class org.jdbi.v3.core.Handle implements java.io.Closeable, org.jdbi.v3.core.config.Configurable<org.jdbi.v3.core.Handle>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jdbi.v3.core.Handle
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger LOG;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.jdbi.v3.core.Jdbi jdbi;
    descriptor: Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jdbi.v3.core.Handle$ConnectionCloser closer;
    descriptor: Lorg/jdbi/v3/core/Handle$ConnectionCloser;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jdbi.v3.core.transaction.TransactionHandler transactions;
    descriptor: Lorg/jdbi/v3/core/transaction/TransactionHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.sql.Connection connection;
    descriptor: Ljava/sql/Connection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean forceEndTransactions;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.ThreadLocal<org.jdbi.v3.core.config.ConfigRegistry> localConfig;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/ThreadLocal<Lorg/jdbi/v3/core/config/ConfigRegistry;>;

  private java.lang.ThreadLocal<org.jdbi.v3.core.extension.ExtensionMethod> localExtensionMethod;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/ThreadLocal<Lorg/jdbi/v3/core/extension/ExtensionMethod;>;

  private org.jdbi.v3.core.statement.StatementBuilder statementBuilder;
    descriptor: Lorg/jdbi/v3/core/statement/StatementBuilder;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 51
            ldc Lorg/jdbi/v3/core/Handle;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.jdbi.v3.core.Jdbi, org.jdbi.v3.core.config.ConfigRegistry, org.jdbi.v3.core.Handle$ConnectionCloser, org.jdbi.v3.core.transaction.TransactionHandler, org.jdbi.v3.core.statement.StatementBuilder, java.sql.Connection);
    descriptor: (Lorg/jdbi/v3/core/Jdbi;Lorg/jdbi/v3/core/config/ConfigRegistry;Lorg/jdbi/v3/core/Handle$ConnectionCloser;Lorg/jdbi/v3/core/transaction/TransactionHandler;Lorg/jdbi/v3/core/statement/StatementBuilder;Ljava/sql/Connection;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.Jdbi jdbi
        start local 2 // org.jdbi.v3.core.config.ConfigRegistry localConfig
        start local 3 // org.jdbi.v3.core.Handle$ConnectionCloser closer
        start local 4 // org.jdbi.v3.core.transaction.TransactionHandler transactions
        start local 5 // org.jdbi.v3.core.statement.StatementBuilder statementBuilder
        start local 6 // java.sql.Connection connection
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            iconst_0
            putfield org.jdbi.v3.core.Handle.closed:Z
         2: .line 71
            aload 0 /* this */
            aload 1 /* jdbi */
            putfield org.jdbi.v3.core.Handle.jdbi:Lorg/jdbi/v3/core/Jdbi;
         3: .line 72
            aload 0 /* this */
            aload 3 /* closer */
            putfield org.jdbi.v3.core.Handle.closer:Lorg/jdbi/v3/core/Handle$ConnectionCloser;
         4: .line 73
            aload 0 /* this */
            aload 6 /* connection */
            putfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
         5: .line 75
            aload 0 /* this */
            aload 2 /* localConfig */
            invokedynamic get(Lorg/jdbi/v3/core/config/ConfigRegistry;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/jdbi/v3/core/Handle.lambda$0(Lorg/jdbi/v3/core/config/ConfigRegistry;)Lorg/jdbi/v3/core/config/ConfigRegistry; (6)
                  ()Lorg/jdbi/v3/core/config/ConfigRegistry;
            invokestatic java.lang.ThreadLocal.withInitial:(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
            putfield org.jdbi.v3.core.Handle.localConfig:Ljava/lang/ThreadLocal;
         6: .line 76
            aload 0 /* this */
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putfield org.jdbi.v3.core.Handle.localExtensionMethod:Ljava/lang/ThreadLocal;
         7: .line 77
            aload 0 /* this */
            aload 5 /* statementBuilder */
            putfield org.jdbi.v3.core.Handle.statementBuilder:Lorg/jdbi/v3/core/statement/StatementBuilder;
         8: .line 78
            aload 0 /* this */
            aload 4 /* transactions */
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.specialize:(Lorg/jdbi/v3/core/Handle;)Lorg/jdbi/v3/core/transaction/TransactionHandler;
            putfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
         9: .line 79
            aload 0 /* this */
            aload 4 /* transactions */
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.isInTransaction:(Lorg/jdbi/v3/core/Handle;)Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: org.jdbi.v3.core.Handle org.jdbi.v3.core.Jdbi org.jdbi.v3.core.config.ConfigRegistry org.jdbi.v3.core.Handle$ConnectionCloser org.jdbi.v3.core.transaction.TransactionHandler org.jdbi.v3.core.statement.StatementBuilder java.sql.Connection
      StackMap stack: org.jdbi.v3.core.Handle
        10: iconst_1
      StackMap locals: org.jdbi.v3.core.Handle org.jdbi.v3.core.Jdbi org.jdbi.v3.core.config.ConfigRegistry org.jdbi.v3.core.Handle$ConnectionCloser org.jdbi.v3.core.transaction.TransactionHandler org.jdbi.v3.core.statement.StatementBuilder java.sql.Connection
      StackMap stack: org.jdbi.v3.core.Handle int
        11: putfield org.jdbi.v3.core.Handle.forceEndTransactions:Z
        12: .line 80
            return
        end local 6 // java.sql.Connection connection
        end local 5 // org.jdbi.v3.core.statement.StatementBuilder statementBuilder
        end local 4 // org.jdbi.v3.core.transaction.TransactionHandler transactions
        end local 3 // org.jdbi.v3.core.Handle$ConnectionCloser closer
        end local 2 // org.jdbi.v3.core.config.ConfigRegistry localConfig
        end local 1 // org.jdbi.v3.core.Jdbi jdbi
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/jdbi/v3/core/Handle;
            0   13     1              jdbi  Lorg/jdbi/v3/core/Jdbi;
            0   13     2       localConfig  Lorg/jdbi/v3/core/config/ConfigRegistry;
            0   13     3            closer  Lorg/jdbi/v3/core/Handle$ConnectionCloser;
            0   13     4      transactions  Lorg/jdbi/v3/core/transaction/TransactionHandler;
            0   13     5  statementBuilder  Lorg/jdbi/v3/core/statement/StatementBuilder;
            0   13     6        connection  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                  Name  Flags
      jdbi              
      localConfig       
      closer            
      transactions      
      statementBuilder  
      connection        

  public org.jdbi.v3.core.Jdbi getJdbi();
    descriptor: ()Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 83
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.jdbi:Lorg/jdbi/v3/core/Jdbi;
            areturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  public org.jdbi.v3.core.config.ConfigRegistry getConfig();
    descriptor: ()Lorg/jdbi/v3/core/config/ConfigRegistry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 88
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localConfig:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.config.ConfigRegistry
            areturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  void setConfig(org.jdbi.v3.core.config.ConfigRegistry);
    descriptor: (Lorg/jdbi/v3/core/config/ConfigRegistry;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.config.ConfigRegistry config
         0: .line 92
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localConfig:Ljava/lang/ThreadLocal;
            aload 1 /* config */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 93
            return
        end local 1 // org.jdbi.v3.core.config.ConfigRegistry config
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jdbi/v3/core/Handle;
            0    2     1  config  Lorg/jdbi/v3/core/config/ConfigRegistry;
    MethodParameters:
        Name  Flags
      config  

  void setLocalConfig(java.lang.ThreadLocal<org.jdbi.v3.core.config.ConfigRegistry>);
    descriptor: (Ljava/lang/ThreadLocal;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.ThreadLocal configThreadLocal
         0: .line 97
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localConfig:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         1: .line 98
            aload 0 /* this */
            aload 1 /* configThreadLocal */
            putfield org.jdbi.v3.core.Handle.localConfig:Ljava/lang/ThreadLocal;
         2: .line 99
            return
        end local 1 // java.lang.ThreadLocal configThreadLocal
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lorg/jdbi/v3/core/Handle;
            0    3     1  configThreadLocal  Ljava/lang/ThreadLocal<Lorg/jdbi/v3/core/config/ConfigRegistry;>;
    Signature: (Ljava/lang/ThreadLocal<Lorg/jdbi/v3/core/config/ConfigRegistry;>;)V
    MethodParameters:
                   Name  Flags
      configThreadLocal  

  public java.sql.Connection getConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 107
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
            areturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  public org.jdbi.v3.core.statement.StatementBuilder getStatementBuilder();
    descriptor: ()Lorg/jdbi/v3/core/statement/StatementBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 114
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.statementBuilder:Lorg/jdbi/v3/core/statement/StatementBuilder;
            areturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  public org.jdbi.v3.core.Handle setStatementBuilder(org.jdbi.v3.core.statement.StatementBuilder);
    descriptor: (Lorg/jdbi/v3/core/statement/StatementBuilder;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.statement.StatementBuilder builder
         0: .line 123
            aload 0 /* this */
            aload 1 /* builder */
            putfield org.jdbi.v3.core.Handle.statementBuilder:Lorg/jdbi/v3/core/statement/StatementBuilder;
         1: .line 124
            aload 0 /* this */
            areturn
        end local 1 // org.jdbi.v3.core.statement.StatementBuilder builder
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jdbi/v3/core/Handle;
            0    2     1  builder  Lorg/jdbi/v3/core/statement/StatementBuilder;
    MethodParameters:
         Name  Flags
      builder  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 136
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* suppressed */
        start local 1 // java.util.List suppressed
         1: .line 137
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.closed:Z
            ifeq 3
         2: .line 138
            return
         3: .line 141
      StackMap locals: java.util.List
      StackMap stack:
            iconst_0
            istore 2 /* wasInTransaction */
        start local 2 // boolean wasInTransaction
         4: .line 142
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.forceEndTransactions:Z
            ifeq 9
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localConfig:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.config.ConfigRegistry
            ldc Lorg/jdbi/v3/core/Handles;
            invokevirtual org.jdbi.v3.core.config.ConfigRegistry.get:(Ljava/lang/Class;)Lorg/jdbi/v3/core/config/JdbiConfig;
            checkcast org.jdbi.v3.core.Handles
            invokevirtual org.jdbi.v3.core.Handles.isForceEndTransactions:()Z
            ifeq 9
         5: .line 144
            aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Handle.isInTransaction:()Z
            istore 2 /* wasInTransaction */
         6: .line 145
            goto 9
      StackMap locals: org.jdbi.v3.core.Handle java.util.List int
      StackMap stack: java.lang.Exception
         7: astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 146
            aload 1 /* suppressed */
            aload 3 /* e */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Exception e
         9: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localExtensionMethod:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
        10: .line 151
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localConfig:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
        11: .line 153
            iload 2 /* wasInTransaction */
            ifeq 16
        12: .line 155
            aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Handle.rollback:()Lorg/jdbi/v3/core/Handle;
            pop
        13: .line 156
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Exception
        14: astore 3 /* e */
        start local 3 // java.lang.Exception e
        15: .line 157
            aload 1 /* suppressed */
            aload 3 /* e */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Exception e
        16: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.statementBuilder:Lorg/jdbi/v3/core/statement/StatementBuilder;
            aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Handle.getConnection:()Ljava/sql/Connection;
            invokeinterface org.jdbi.v3.core.statement.StatementBuilder.close:(Ljava/sql/Connection;)V
        17: .line 163
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: astore 3 /* e */
        start local 3 // java.lang.Exception e
        19: .line 164
            aload 1 /* suppressed */
            aload 3 /* e */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Exception e
        20: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.closer:Lorg/jdbi/v3/core/Handle$ConnectionCloser;
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
            invokeinterface org.jdbi.v3.core.Handle$ConnectionCloser.close:(Ljava/sql/Connection;)V
        21: .line 170
            aload 1 /* suppressed */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 25
        22: .line 171
            aload 1 /* suppressed */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast java.lang.Throwable
            astore 3 /* original */
        start local 3 // java.lang.Throwable original
        23: .line 172
            aload 1 /* suppressed */
            aload 3 /* original */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/lang/Throwable;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/Throwable.addSuppressed(Ljava/lang/Throwable;)V (5)
                  (Ljava/lang/Throwable;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        24: .line 173
            new org.jdbi.v3.core.CloseException
            dup
            ldc "Failed to clear transaction status on close"
            aload 3 /* original */
            invokespecial org.jdbi.v3.core.CloseException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable original
        25: .line 175
      StackMap locals:
      StackMap stack:
            iload 2 /* wasInTransaction */
            ifeq 35
        26: .line 176
            new org.jdbi.v3.core.transaction.TransactionException
            dup
            ldc "Improper transaction handling detected: A Handle with an open transaction was closed. Transactions must be explicitly committed or rolled back before closing the Handle. Jdbi has rolled back this transaction automatically. This check may be disabled by calling getConfig(Handles.class).setForceEndTransactions(false)."
            invokespecial org.jdbi.v3.core.transaction.TransactionException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 182
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
        28: .line 183
            new org.jdbi.v3.core.CloseException
            dup
            ldc "Unable to close Connection"
            aload 3 /* e */
            invokespecial org.jdbi.v3.core.CloseException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 4 /* ce */
        start local 4 // org.jdbi.v3.core.CloseException ce
        29: .line 184
            aload 1 /* suppressed */
            aload 4 /* ce */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Lorg/jdbi/v3/core/CloseException;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/Throwable.addSuppressed(Ljava/lang/Throwable;)V (5)
                  (Ljava/lang/Throwable;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        30: .line 185
            aload 4 /* ce */
            athrow
        end local 4 // org.jdbi.v3.core.CloseException ce
        end local 3 // java.sql.SQLException e
        31: .line 186
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        32: .line 187
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] released"
            aload 0 /* this */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        33: .line 188
            aload 0 /* this */
            iconst_1
            putfield org.jdbi.v3.core.Handle.closed:Z
        34: .line 189
            aload 6
            athrow
        35: .line 187
      StackMap locals:
      StackMap stack:
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] released"
            aload 0 /* this */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        36: .line 188
            aload 0 /* this */
            iconst_1
            putfield org.jdbi.v3.core.Handle.closed:Z
        37: .line 190
            return
        end local 2 // boolean wasInTransaction
        end local 1 // java.util.List suppressed
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   38     0              this  Lorg/jdbi/v3/core/Handle;
            1   38     1        suppressed  Ljava/util/List<Ljava/lang/Throwable;>;
            4   38     2  wasInTransaction  Z
            8    9     3                 e  Ljava/lang/Exception;
           15   16     3                 e  Ljava/lang/Exception;
           19   20     3                 e  Ljava/lang/Exception;
           23   25     3          original  Ljava/lang/Throwable;
           28   31     3                 e  Ljava/sql/SQLException;
           29   31     4                ce  Lorg/jdbi/v3/core/CloseException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
          12    13      14  Class java.lang.Exception
          16    17      18  Class java.lang.Exception
          20    27      27  Class java.sql.SQLException
          20    31      31  any

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 196
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.closed:Z
            ireturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  public org.jdbi.v3.core.statement.Query select(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Lorg/jdbi/v3/core/statement/Query;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String sql
        start local 2 // java.lang.Object[] args
         0: .line 206
            aload 0 /* this */
            aload 1 /* sql */
            invokevirtual org.jdbi.v3.core.Handle.createQuery:(Ljava/lang/String;)Lorg/jdbi/v3/core/statement/Query;
            astore 3 /* query */
        start local 3 // org.jdbi.v3.core.statement.Query query
         1: .line 207
            iconst_0
            istore 4 /* position */
        start local 4 // int position
         2: .line 208
            aload 2 /* args */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 6
      StackMap locals: org.jdbi.v3.core.Handle java.lang.String java.lang.Object[] org.jdbi.v3.core.statement.Query int top int int java.lang.Object[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* arg */
        start local 5 // java.lang.Object arg
         4: .line 209
            aload 3 /* query */
            iload 4 /* position */
            iinc 4 /* position */ 1
            aload 5 /* arg */
            invokevirtual org.jdbi.v3.core.statement.Query.bind:(ILjava/lang/Object;)Lorg/jdbi/v3/core/statement/SqlStatement;
            pop
        end local 5 // java.lang.Object arg
         5: .line 208
            iinc 6 1
      StackMap locals:
      StackMap stack:
         6: iload 6
            iload 7
            if_icmplt 3
         7: .line 211
            aload 3 /* query */
            areturn
        end local 4 // int position
        end local 3 // org.jdbi.v3.core.statement.Query query
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String sql
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/jdbi/v3/core/Handle;
            0    8     1       sql  Ljava/lang/String;
            0    8     2      args  [Ljava/lang/Object;
            1    8     3     query  Lorg/jdbi/v3/core/statement/Query;
            2    8     4  position  I
            4    5     5       arg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      sql   
      args  

  public int execute(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=11, args_size=3
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String sql
        start local 2 // java.lang.Object[] args
         0: .line 223
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: aload 0 /* this */
            aload 1 /* sql */
            invokevirtual org.jdbi.v3.core.Handle.createUpdate:(Ljava/lang/String;)Lorg/jdbi/v3/core/statement/Update;
            astore 5 /* stmt */
        start local 5 // org.jdbi.v3.core.statement.Update stmt
         2: .line 224
            iconst_0
            istore 6 /* position */
        start local 6 // int position
         3: .line 225
            aload 2 /* args */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 7
      StackMap locals: org.jdbi.v3.core.Handle java.lang.String java.lang.Object[] java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.statement.Update int top int int java.lang.Object[]
      StackMap stack:
         4: aload 10
            iload 8
            aaload
            astore 7 /* arg */
        start local 7 // java.lang.Object arg
         5: .line 226
            aload 5 /* stmt */
            iload 6 /* position */
            iinc 6 /* position */ 1
            aload 7 /* arg */
            invokevirtual org.jdbi.v3.core.statement.Update.bind:(ILjava/lang/Object;)Lorg/jdbi/v3/core/statement/SqlStatement;
            pop
        end local 7 // java.lang.Object arg
         6: .line 225
            iinc 8 1
      StackMap locals:
      StackMap stack:
         7: iload 8
            iload 9
            if_icmplt 4
         8: .line 228
            aload 5 /* stmt */
            invokevirtual org.jdbi.v3.core.statement.Update.execute:()I
         9: .line 229
            aload 5 /* stmt */
            ifnull 10
            aload 5 /* stmt */
            invokevirtual org.jdbi.v3.core.statement.Update.close:()V
        10: .line 228
      StackMap locals: org.jdbi.v3.core.Handle java.lang.String java.lang.Object[] java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.statement.Update int
      StackMap stack: int
            ireturn
        end local 6 // int position
      StackMap locals: org.jdbi.v3.core.Handle java.lang.String java.lang.Object[] java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.statement.Update
      StackMap stack: java.lang.Throwable
        11: astore 3
        12: .line 229
            aload 5 /* stmt */
            ifnull 13
            aload 5 /* stmt */
            invokevirtual org.jdbi.v3.core.statement.Update.close:()V
        end local 5 // org.jdbi.v3.core.statement.Update stmt
      StackMap locals:
      StackMap stack:
        13: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 3
            ifnonnull 15
            aload 4
            astore 3
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3
            aload 4
            if_acmpeq 16
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 3
            athrow
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String sql
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lorg/jdbi/v3/core/Handle;
            0   17     1       sql  Ljava/lang/String;
            0   17     2      args  [Ljava/lang/Object;
            2   13     5      stmt  Lorg/jdbi/v3/core/statement/Update;
            3   11     6  position  I
            5    6     7       arg  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2     9      11  any
           1    10      14  any
          11    14      14  any
    MethodParameters:
      Name  Flags
      sql   
      args  

  public org.jdbi.v3.core.statement.Batch createBatch();
    descriptor: ()Lorg/jdbi/v3/core/statement/Batch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 238
            new org.jdbi.v3.core.statement.Batch
            dup
            aload 0 /* this */
            invokespecial org.jdbi.v3.core.statement.Batch.<init>:(Lorg/jdbi/v3/core/Handle;)V
            areturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  public org.jdbi.v3.core.statement.PreparedBatch prepareBatch(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/statement/PreparedBatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String sql
         0: .line 249
            new org.jdbi.v3.core.statement.PreparedBatch
            dup
            aload 0 /* this */
            aload 1 /* sql */
            invokespecial org.jdbi.v3.core.statement.PreparedBatch.<init>:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String sql
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;
            0    1     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  public org.jdbi.v3.core.statement.Call createCall(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/statement/Call;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String sql
         0: .line 260
            new org.jdbi.v3.core.statement.Call
            dup
            aload 0 /* this */
            aload 1 /* sql */
            invokespecial org.jdbi.v3.core.statement.Call.<init>:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String sql
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;
            0    1     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  public org.jdbi.v3.core.statement.Query createQuery(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/statement/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String sql
         0: .line 270
            new org.jdbi.v3.core.statement.Query
            dup
            aload 0 /* this */
            aload 1 /* sql */
            invokespecial org.jdbi.v3.core.statement.Query.<init>:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String sql
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;
            0    1     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  public org.jdbi.v3.core.statement.Script createScript(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/statement/Script;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String sql
         0: .line 281
            new org.jdbi.v3.core.statement.Script
            dup
            aload 0 /* this */
            aload 1 /* sql */
            invokespecial org.jdbi.v3.core.statement.Script.<init>:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String sql
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;
            0    1     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  public org.jdbi.v3.core.statement.Update createUpdate(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/statement/Update;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String sql
         0: .line 292
            new org.jdbi.v3.core.statement.Update
            dup
            aload 0 /* this */
            aload 1 /* sql */
            invokespecial org.jdbi.v3.core.statement.Update.<init>:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String sql
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;
            0    1     1   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  public boolean isInTransaction();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 300
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.isInTransaction:(Lorg/jdbi/v3/core/Handle;)Z
            ireturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  public org.jdbi.v3.core.Handle begin();
    descriptor: ()Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 309
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.begin:(Lorg/jdbi/v3/core/Handle;)V
         1: .line 310
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] begin transaction"
            aload 0 /* this */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 311
            aload 0 /* this */
            areturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jdbi/v3/core/Handle;

  public org.jdbi.v3.core.Handle commit();
    descriptor: ()Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 320
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         1: .line 321
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.commit:(Lorg/jdbi/v3/core/Handle;)V
         2: .line 322
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] commit transaction in {}ms"
            aload 0 /* this */
            lload 1 /* start */
            invokestatic org.jdbi.v3.core.Handle.msSince:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 323
            aload 0 /* this */
            areturn
        end local 1 // long start
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/jdbi/v3/core/Handle;
            1    4     1  start  J

  public org.jdbi.v3.core.Handle rollback();
    descriptor: ()Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 332
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         1: .line 333
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.rollback:(Lorg/jdbi/v3/core/Handle;)V
         2: .line 334
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] rollback transaction in {}ms"
            aload 0 /* this */
            lload 1 /* start */
            invokestatic org.jdbi.v3.core.Handle.msSince:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 335
            aload 0 /* this */
            areturn
        end local 1 // long start
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/jdbi/v3/core/Handle;
            1    4     1  start  J

  public org.jdbi.v3.core.Handle rollbackToSavepoint(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String savepointName
         0: .line 346
            invokestatic java.lang.System.nanoTime:()J
            lstore 2 /* start */
        start local 2 // long start
         1: .line 347
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            aload 1 /* savepointName */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.rollbackToSavepoint:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
         2: .line 348
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] rollback to savepoint \"{}\" in {}ms"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 1 /* savepointName */
            aastore
            dup
            iconst_2
            lload 2 /* start */
            invokestatic org.jdbi.v3.core.Handle.msSince:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 349
            aload 0 /* this */
            areturn
        end local 2 // long start
        end local 1 // java.lang.String savepointName
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/jdbi/v3/core/Handle;
            0    4     1  savepointName  Ljava/lang/String;
            1    4     2          start  J
    MethodParameters:
               Name  Flags
      savepointName  

  private static long msSince(long);
    descriptor: (J)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long start
         0: .line 353
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic java.lang.System.nanoTime:()J
            lload 0 /* start */
            lsub
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lreturn
        end local 0 // long start
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  start  J
    MethodParameters:
       Name  Flags
      start  final

  public org.jdbi.v3.core.Handle savepoint(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String name
         0: .line 363
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            aload 1 /* name */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.savepoint:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
         1: .line 364
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] savepoint \"{}\""
            aload 0 /* this */
            aload 1 /* name */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 365
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jdbi/v3/core/Handle;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public org.jdbi.v3.core.Handle release(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.String savepointName
         0: .line 375
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            aload 1 /* savepointName */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.releaseSavepoint:(Lorg/jdbi/v3/core/Handle;Ljava/lang/String;)V
         1: .line 376
            getstatic org.jdbi.v3.core.Handle.LOG:Lorg/slf4j/Logger;
            ldc "Handle [{}] release savepoint \"{}\""
            aload 0 /* this */
            aload 1 /* savepointName */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 377
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String savepointName
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/jdbi/v3/core/Handle;
            0    3     1  savepointName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      savepointName  

  public boolean isReadOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 386
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.isReadOnly:()Z
         1: ireturn
         2: .line 387
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 1 /* e */
        start local 1 // java.sql.SQLException e
         3: .line 388
            new org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException
            dup
            ldc "Could not getReadOnly"
            aload 1 /* e */
            invokespecial org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException.<init>:(Ljava/lang/String;Ljava/sql/SQLException;)V
            athrow
        end local 1 // java.sql.SQLException e
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jdbi/v3/core/Handle;
            3    4     1     e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.sql.SQLException

  public org.jdbi.v3.core.Handle setReadOnly(boolean);
    descriptor: (Z)Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // boolean readOnly
         0: .line 404
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
            iload 1 /* readOnly */
            invokeinterface java.sql.Connection.setReadOnly:(Z)V
         1: .line 405
            goto 4
      StackMap locals:
      StackMap stack: java.sql.SQLException
         2: astore 2 /* e */
        start local 2 // java.sql.SQLException e
         3: .line 406
            new org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException
            dup
            ldc "Could not setReadOnly"
            aload 2 /* e */
            invokespecial org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException.<init>:(Ljava/lang/String;Ljava/sql/SQLException;)V
            athrow
        end local 2 // java.sql.SQLException e
         4: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // boolean readOnly
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jdbi/v3/core/Handle;
            0    5     1  readOnly  Z
            3    4     2         e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.sql.SQLException
    MethodParameters:
          Name  Flags
      readOnly  

  public <R, X extends java.lang.Exception> R inTransaction(org.jdbi.v3.core.HandleCallback<R, X>) throws X;
    descriptor: (Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.HandleCallback callback
         0: .line 423
            aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Handle.isInTransaction:()Z
            ifeq 2
         1: .line 424
            aload 1 /* callback */
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.HandleCallback.withHandle:(Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            goto 3
         2: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            aload 1 /* callback */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.inTransaction:(Lorg/jdbi/v3/core/Handle;Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
         3: .line 423
      StackMap locals:
      StackMap stack: java.lang.Object
            areturn
        end local 1 // org.jdbi.v3.core.HandleCallback callback
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/jdbi/v3/core/Handle;
            0    4     1  callback  Lorg/jdbi/v3/core/HandleCallback<TR;TX;>;
    Exceptions:
      throws java.lang.Exception
    Signature: <R:Ljava/lang/Object;X:Ljava/lang/Exception;>(Lorg/jdbi/v3/core/HandleCallback<TR;TX;>;)TR;^TX;
    MethodParameters:
          Name  Flags
      callback  

  public <X extends java.lang.Exception> void useTransaction(org.jdbi.v3.core.HandleConsumer<X>) throws X;
    descriptor: (Lorg/jdbi/v3/core/HandleConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.HandleConsumer consumer
         0: .line 437
            aload 0 /* this */
            aload 1 /* consumer */
            invokeinterface org.jdbi.v3.core.HandleConsumer.asCallback:()Lorg/jdbi/v3/core/HandleCallback;
            invokevirtual org.jdbi.v3.core.Handle.inTransaction:(Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            pop
         1: .line 438
            return
        end local 1 // org.jdbi.v3.core.HandleConsumer consumer
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jdbi/v3/core/Handle;
            0    2     1  consumer  Lorg/jdbi/v3/core/HandleConsumer<TX;>;
    Exceptions:
      throws java.lang.Exception
    Signature: <X:Ljava/lang/Exception;>(Lorg/jdbi/v3/core/HandleConsumer<TX;>;)V^TX;
    MethodParameters:
          Name  Flags
      consumer  final

  public <R, X extends java.lang.Exception> R inTransaction(org.jdbi.v3.core.transaction.TransactionIsolationLevel, org.jdbi.v3.core.HandleCallback<R, X>) throws X;
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        start local 2 // org.jdbi.v3.core.HandleCallback callback
         0: .line 458
            aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Handle.isInTransaction:()Z
            ifeq 9
         1: .line 459
            aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Handle.getTransactionIsolationLevel:()Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            astore 3 /* currentLevel */
        start local 3 // org.jdbi.v3.core.transaction.TransactionIsolationLevel currentLevel
         2: .line 460
            aload 3 /* currentLevel */
            aload 1 /* level */
            if_acmpeq 8
            aload 1 /* level */
            getstatic org.jdbi.v3.core.transaction.TransactionIsolationLevel.UNKNOWN:Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            if_acmpeq 8
         3: .line 461
            new org.jdbi.v3.core.transaction.TransactionException
            dup
         4: .line 462
            new java.lang.StringBuilder
            dup
            ldc "Tried to execute nested transaction with isolation level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* level */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 463
            ldc "but already running in a transaction with isolation level "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* currentLevel */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 462
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 461
            invokespecial org.jdbi.v3.core.transaction.TransactionException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 465
      StackMap locals: org.jdbi.v3.core.transaction.TransactionIsolationLevel
      StackMap stack:
            aload 2 /* callback */
            aload 0 /* this */
            invokeinterface org.jdbi.v3.core.HandleCallback.withHandle:(Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            areturn
        end local 3 // org.jdbi.v3.core.transaction.TransactionIsolationLevel currentLevel
         9: .line 468
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
        10: new org.jdbi.v3.core.Handle$TransactionResetter
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Handle.getTransactionIsolationLevel:()Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            invokespecial org.jdbi.v3.core.Handle$TransactionResetter.<init>:(Lorg/jdbi/v3/core/Handle;Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;)V
            astore 5 /* tr */
        start local 5 // org.jdbi.v3.core.Handle$TransactionResetter tr
        11: .line 469
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual org.jdbi.v3.core.Handle.setTransactionIsolation:(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;)V
        12: .line 470
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.transactions:Lorg/jdbi/v3/core/transaction/TransactionHandler;
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* callback */
            invokeinterface org.jdbi.v3.core.transaction.TransactionHandler.inTransaction:(Lorg/jdbi/v3/core/Handle;Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
        13: .line 471
            aload 5 /* tr */
            ifnull 14
            aload 5 /* tr */
            invokevirtual org.jdbi.v3.core.Handle$TransactionResetter.close:()V
        14: .line 470
      StackMap locals: org.jdbi.v3.core.Handle org.jdbi.v3.core.transaction.TransactionIsolationLevel org.jdbi.v3.core.HandleCallback java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.Handle$TransactionResetter
      StackMap stack: java.lang.Object
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 3
        16: .line 471
            aload 5 /* tr */
            ifnull 17
            aload 5 /* tr */
            invokevirtual org.jdbi.v3.core.Handle$TransactionResetter.close:()V
        end local 5 // org.jdbi.v3.core.Handle$TransactionResetter tr
      StackMap locals:
      StackMap stack:
        17: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
            aload 3
            ifnonnull 19
            aload 4
            astore 3
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 3
            aload 4
            if_acmpeq 20
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 3
            athrow
        end local 2 // org.jdbi.v3.core.HandleCallback callback
        end local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Lorg/jdbi/v3/core/Handle;
            0   21     1         level  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            0   21     2      callback  Lorg/jdbi/v3/core/HandleCallback<TR;TX;>;
            2    9     3  currentLevel  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
           11   17     5            tr  Lorg/jdbi/v3/core/Handle$TransactionResetter;
      Exception table:
        from    to  target  type
          11    13      15  any
          10    14      18  any
          15    18      18  any
    Exceptions:
      throws java.lang.Exception
    Signature: <R:Ljava/lang/Object;X:Ljava/lang/Exception;>(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback<TR;TX;>;)TR;^TX;
    MethodParameters:
          Name  Flags
      level     
      callback  

  public <X extends java.lang.Exception> void useTransaction(org.jdbi.v3.core.transaction.TransactionIsolationLevel, org.jdbi.v3.core.HandleConsumer<X>) throws X;
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        start local 2 // org.jdbi.v3.core.HandleConsumer consumer
         0: .line 488
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* consumer */
            invokeinterface org.jdbi.v3.core.HandleConsumer.asCallback:()Lorg/jdbi/v3/core/HandleCallback;
            invokevirtual org.jdbi.v3.core.Handle.inTransaction:(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            pop
         1: .line 489
            return
        end local 2 // org.jdbi.v3.core.HandleConsumer consumer
        end local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jdbi/v3/core/Handle;
            0    2     1     level  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            0    2     2  consumer  Lorg/jdbi/v3/core/HandleConsumer<TX;>;
    Exceptions:
      throws java.lang.Exception
    Signature: <X:Ljava/lang/Exception;>(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleConsumer<TX;>;)V^TX;
    MethodParameters:
          Name  Flags
      level     
      consumer  

  public void setTransactionIsolation(org.jdbi.v3.core.transaction.TransactionIsolationLevel);
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
         0: .line 499
            aload 1 /* level */
            getstatic org.jdbi.v3.core.transaction.TransactionIsolationLevel.UNKNOWN:Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            if_acmpeq 2
         1: .line 500
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual org.jdbi.v3.core.transaction.TransactionIsolationLevel.intValue:()I
            invokevirtual org.jdbi.v3.core.Handle.setTransactionIsolation:(I)V
         2: .line 502
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jdbi/v3/core/Handle;
            0    3     1  level  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
    MethodParameters:
       Name  Flags
      level  

  public void setTransactionIsolation(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // int level
         0: .line 511
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.getTransactionIsolation:()I
            iload 1 /* level */
            if_icmpeq 5
         1: .line 512
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
            iload 1 /* level */
            invokeinterface java.sql.Connection.setTransactionIsolation:(I)V
         2: .line 514
            goto 5
      StackMap locals:
      StackMap stack: java.sql.SQLException
         3: astore 2 /* e */
        start local 2 // java.sql.SQLException e
         4: .line 515
            new org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException
            dup
            iload 1 /* level */
            aload 2 /* e */
            invokespecial org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException.<init>:(ILjava/sql/SQLException;)V
            athrow
        end local 2 // java.sql.SQLException e
         5: .line 517
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int level
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/jdbi/v3/core/Handle;
            0    6     1  level  I
            4    5     2      e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.sql.SQLException
    MethodParameters:
       Name  Flags
      level  

  public org.jdbi.v3.core.transaction.TransactionIsolationLevel getTransactionIsolationLevel();
    descriptor: ()Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 526
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.connection:Ljava/sql/Connection;
            invokeinterface java.sql.Connection.getTransactionIsolation:()I
            invokestatic org.jdbi.v3.core.transaction.TransactionIsolationLevel.valueOf:(I)Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
         1: areturn
         2: .line 527
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 1 /* e */
        start local 1 // java.sql.SQLException e
         3: .line 528
            new org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException
            dup
            ldc "unable to access current setting"
            aload 1 /* e */
            invokespecial org.jdbi.v3.core.transaction.UnableToManipulateTransactionIsolationLevelException.<init>:(Ljava/lang/String;Ljava/sql/SQLException;)V
            athrow
        end local 1 // java.sql.SQLException e
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jdbi/v3/core/Handle;
            3    4     1     e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.sql.SQLException

  public <T> T attach(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.jdbi.v3.core.Handle this
        start local 1 // java.lang.Class extensionType
         0: .line 541
            aload 0 /* this */
            ldc Lorg/jdbi/v3/core/extension/Extensions;
            invokevirtual org.jdbi.v3.core.Handle.getConfig:(Ljava/lang/Class;)Lorg/jdbi/v3/core/config/JdbiConfig;
            checkcast org.jdbi.v3.core.extension.Extensions
         1: .line 542
            aload 1 /* extensionType */
            aload 0 /* this */
            invokestatic org.jdbi.v3.core.ConstantHandleSupplier.of:(Lorg/jdbi/v3/core/Handle;)Lorg/jdbi/v3/core/extension/HandleSupplier;
            invokevirtual org.jdbi.v3.core.extension.Extensions.findFor:(Ljava/lang/Class;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/util/Optional;
         2: .line 543
            aload 1 /* extensionType */
            invokedynamic get(Ljava/lang/Class;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/jdbi/v3/core/Handle.lambda$3(Ljava/lang/Class;)Lorg/jdbi/v3/core/extension/NoSuchExtensionException; (6)
                  ()Lorg/jdbi/v3/core/extension/NoSuchExtensionException;
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
         3: .line 541
            areturn
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/jdbi/v3/core/Handle;
            0    4     1  extensionType  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
               Name  Flags
      extensionType  

  public org.jdbi.v3.core.extension.ExtensionMethod getExtensionMethod();
    descriptor: ()Lorg/jdbi/v3/core/extension/ExtensionMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Handle this
         0: .line 550
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localExtensionMethod:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.extension.ExtensionMethod
            areturn
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Handle;

  void setExtensionMethod(org.jdbi.v3.core.extension.ExtensionMethod);
    descriptor: (Lorg/jdbi/v3/core/extension/ExtensionMethod;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // org.jdbi.v3.core.extension.ExtensionMethod extensionMethod
         0: .line 554
            aload 0 /* this */
            getfield org.jdbi.v3.core.Handle.localExtensionMethod:Ljava/lang/ThreadLocal;
            aload 1 /* extensionMethod */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 555
            return
        end local 1 // org.jdbi.v3.core.extension.ExtensionMethod extensionMethod
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/jdbi/v3/core/Handle;
            0    2     1  extensionMethod  Lorg/jdbi/v3/core/extension/ExtensionMethod;
    MethodParameters:
                 Name  Flags
      extensionMethod  

  void setExtensionMethodThreadLocal(java.lang.ThreadLocal<org.jdbi.v3.core.extension.ExtensionMethod>);
    descriptor: (Ljava/lang/ThreadLocal;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Handle this
        start local 1 // java.lang.ThreadLocal extensionMethodThreadLocal
         0: .line 558
            aload 0 /* this */
            aload 1 /* extensionMethodThreadLocal */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ThreadLocal
            putfield org.jdbi.v3.core.Handle.localExtensionMethod:Ljava/lang/ThreadLocal;
         1: .line 559
            return
        end local 1 // java.lang.ThreadLocal extensionMethodThreadLocal
        end local 0 // org.jdbi.v3.core.Handle this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    2     0                        this  Lorg/jdbi/v3/core/Handle;
            0    2     1  extensionMethodThreadLocal  Ljava/lang/ThreadLocal<Lorg/jdbi/v3/core/extension/ExtensionMethod;>;
    Signature: (Ljava/lang/ThreadLocal<Lorg/jdbi/v3/core/extension/ExtensionMethod;>;)V
    MethodParameters:
                            Name  Flags
      extensionMethodThreadLocal  

  private static org.jdbi.v3.core.config.ConfigRegistry lambda$0(org.jdbi.v3.core.config.ConfigRegistry);
    descriptor: (Lorg/jdbi/v3/core/config/ConfigRegistry;)Lorg/jdbi/v3/core/config/ConfigRegistry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 75
            aload 0
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static org.jdbi.v3.core.extension.NoSuchExtensionException lambda$3(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/jdbi/v3/core/extension/NoSuchExtensionException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 543
            new org.jdbi.v3.core.extension.NoSuchExtensionException
            dup
            aload 0
            invokespecial org.jdbi.v3.core.extension.NoSuchExtensionException.<init>:(Ljava/lang/Class;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/io/Closeable;Lorg/jdbi/v3/core/config/Configurable<Lorg/jdbi/v3/core/Handle;>;
SourceFile: "Handle.java"
NestMembers:
  org.jdbi.v3.core.Handle$ConnectionCloser  org.jdbi.v3.core.Handle$TransactionResetter
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  abstract ConnectionCloser = org.jdbi.v3.core.Handle$ConnectionCloser of org.jdbi.v3.core.Handle
  private TransactionResetter = org.jdbi.v3.core.Handle$TransactionResetter of org.jdbi.v3.core.Handle