public class org.jdbi.v3.core.Jdbi implements org.jdbi.v3.core.config.Configurable<org.jdbi.v3.core.Jdbi>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jdbi.v3.core.Jdbi
  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.config.ConfigRegistry config;
    descriptor: Lorg/jdbi/v3/core/config/ConfigRegistry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.concurrent.atomic.AtomicReference<org.jdbi.v3.core.transaction.TransactionHandler> transactionhandler;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/jdbi/v3/core/transaction/TransactionHandler;>;

  private final java.util.concurrent.atomic.AtomicReference<org.jdbi.v3.core.statement.StatementBuilderFactory> statementBuilderFactory;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/jdbi/v3/core/statement/StatementBuilderFactory;>;

  private final java.util.concurrent.CopyOnWriteArrayList<org.jdbi.v3.core.spi.JdbiPlugin> plugins;
    descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Lorg/jdbi/v3/core/spi/JdbiPlugin;>;

  private final java.lang.ThreadLocal<org.jdbi.v3.core.extension.HandleSupplier> threadHandleSupplier;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lorg/jdbi/v3/core/extension/HandleSupplier;>;

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

  private void <init>(org.jdbi.v3.core.ConnectionFactory);
    descriptor: (Lorg/jdbi/v3/core/ConnectionFactory;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // org.jdbi.v3.core.ConnectionFactory connectionFactory
         0: .line 67
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 57
            aload 0 /* this */
            new org.jdbi.v3.core.config.ConfigRegistry
            dup
            invokespecial org.jdbi.v3.core.config.ConfigRegistry.<init>:()V
            putfield org.jdbi.v3.core.Jdbi.config:Lorg/jdbi/v3/core/config/ConfigRegistry;
         2: .line 60
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            new org.jdbi.v3.core.transaction.LocalTransactionHandler
            dup
            invokespecial org.jdbi.v3.core.transaction.LocalTransactionHandler.<init>:()V
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            putfield org.jdbi.v3.core.Jdbi.transactionhandler:Ljava/util/concurrent/atomic/AtomicReference;
         3: .line 61
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            getstatic org.jdbi.v3.core.statement.DefaultStatementBuilder.FACTORY:Lorg/jdbi/v3/core/statement/StatementBuilderFactory;
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            putfield org.jdbi.v3.core.Jdbi.statementBuilderFactory:Ljava/util/concurrent/atomic/AtomicReference;
         4: .line 63
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.jdbi.v3.core.Jdbi.plugins:Ljava/util/concurrent/CopyOnWriteArrayList;
         5: .line 65
            aload 0 /* this */
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
         6: .line 68
            aload 1 /* connectionFactory */
            ldc "null connectionFactory"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         7: .line 69
            aload 0 /* this */
            aload 1 /* connectionFactory */
            putfield org.jdbi.v3.core.Jdbi.connectionFactory:Lorg/jdbi/v3/core/ConnectionFactory;
         8: .line 70
            return
        end local 1 // org.jdbi.v3.core.ConnectionFactory connectionFactory
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lorg/jdbi/v3/core/Jdbi;
            0    9     1  connectionFactory  Lorg/jdbi/v3/core/ConnectionFactory;
    MethodParameters:
                   Name  Flags
      connectionFactory  

  public static org.jdbi.v3.core.Jdbi create(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.sql.Connection connection
         0: .line 78
            new org.jdbi.v3.core.SingleConnectionFactory
            dup
            aload 0 /* connection */
            invokespecial org.jdbi.v3.core.SingleConnectionFactory.<init>:(Ljava/sql/Connection;)V
            invokestatic org.jdbi.v3.core.Jdbi.create:(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
            areturn
        end local 0 // java.sql.Connection connection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  connection  Ljava/sql/Connection;
    MethodParameters:
            Name  Flags
      connection  

  public static org.jdbi.v3.core.Jdbi create(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.sql.DataSource dataSource
         0: .line 87
            aload 0 /* dataSource */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic openConnection(Ljavax/sql/DataSource;)Lorg/jdbi/v3/core/ConnectionFactory;
              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/sql/Connection;
                  javax/sql/DataSource.getConnection()Ljava/sql/Connection; (9 itf)
                  ()Ljava/sql/Connection;
            invokestatic org.jdbi.v3.core.Jdbi.create:(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
            areturn
        end local 0 // javax.sql.DataSource dataSource
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  dataSource  Ljavax/sql/DataSource;
    MethodParameters:
            Name  Flags
      dataSource  

  public static org.jdbi.v3.core.Jdbi create(org.jdbi.v3.core.ConnectionFactory);
    descriptor: (Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.ConnectionFactory connectionFactory
         0: .line 103
            new org.jdbi.v3.core.Jdbi
            dup
            aload 0 /* connectionFactory */
            invokespecial org.jdbi.v3.core.Jdbi.<init>:(Lorg/jdbi/v3/core/ConnectionFactory;)V
            areturn
        end local 0 // org.jdbi.v3.core.ConnectionFactory connectionFactory
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0  connectionFactory  Lorg/jdbi/v3/core/ConnectionFactory;
    MethodParameters:
                   Name  Flags
      connectionFactory  

  public static org.jdbi.v3.core.Jdbi create(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String url
         0: .line 112
            aload 0 /* url */
            ldc "null url"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 113
            aload 0 /* url */
            invokedynamic openConnection(Ljava/lang/String;)Lorg/jdbi/v3/core/ConnectionFactory;
              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/sql/Connection;
                  org/jdbi/v3/core/Jdbi.lambda$1(Ljava/lang/String;)Ljava/sql/Connection; (6)
                  ()Ljava/sql/Connection;
            invokestatic org.jdbi.v3.core.Jdbi.create:(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
            areturn
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   url  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      url   final

  public static org.jdbi.v3.core.Jdbi create(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String url
        start local 1 // java.util.Properties properties
         0: .line 123
            aload 0 /* url */
            ldc "null url"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 124
            aload 1 /* properties */
            ldc "null properties"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 125
            aload 0 /* url */
            aload 1 /* properties */
            invokedynamic openConnection(Ljava/lang/String;Ljava/util/Properties;)Lorg/jdbi/v3/core/ConnectionFactory;
              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/sql/Connection;
                  org/jdbi/v3/core/Jdbi.lambda$2(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection; (6)
                  ()Ljava/sql/Connection;
            invokestatic org.jdbi.v3.core.Jdbi.create:(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
            areturn
        end local 1 // java.util.Properties properties
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0         url  Ljava/lang/String;
            0    3     1  properties  Ljava/util/Properties;
    MethodParameters:
            Name  Flags
      url         final
      properties  final

  public static org.jdbi.v3.core.Jdbi create(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String url
        start local 1 // java.lang.String username
        start local 2 // java.lang.String password
         0: .line 136
            aload 0 /* url */
            ldc "null url"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 137
            aload 1 /* username */
            ldc "null username"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 138
            aload 2 /* password */
            ldc "null password"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 139
            aload 0 /* url */
            aload 1 /* username */
            aload 2 /* password */
            invokedynamic openConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jdbi/v3/core/ConnectionFactory;
              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/sql/Connection;
                  org/jdbi/v3/core/Jdbi.lambda$3(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection; (6)
                  ()Ljava/sql/Connection;
            invokestatic org.jdbi.v3.core.Jdbi.create:(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
            areturn
        end local 2 // java.lang.String password
        end local 1 // java.lang.String username
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0       url  Ljava/lang/String;
            0    4     1  username  Ljava/lang/String;
            0    4     2  password  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      url       final
      username  final
      password  final

  public static org.jdbi.v3.core.Handle open(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.sql.DataSource dataSource
         0: .line 150
            aload 0 /* dataSource */
            invokestatic org.jdbi.v3.core.Jdbi.create:(Ljavax/sql/DataSource;)Lorg/jdbi/v3/core/Jdbi;
            invokevirtual org.jdbi.v3.core.Jdbi.open:()Lorg/jdbi/v3/core/Handle;
            areturn
        end local 0 // javax.sql.DataSource dataSource
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  dataSource  Ljavax/sql/DataSource;
    MethodParameters:
            Name  Flags
      dataSource  

  public static org.jdbi.v3.core.Handle open(org.jdbi.v3.core.ConnectionFactory);
    descriptor: (Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.ConnectionFactory connectionFactory
         0: .line 161
            aload 0 /* connectionFactory */
            invokestatic org.jdbi.v3.core.Jdbi.create:(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
            invokevirtual org.jdbi.v3.core.Jdbi.open:()Lorg/jdbi/v3/core/Handle;
            areturn
        end local 0 // org.jdbi.v3.core.ConnectionFactory connectionFactory
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0  connectionFactory  Lorg/jdbi/v3/core/ConnectionFactory;
    MethodParameters:
                   Name  Flags
      connectionFactory  

  public static org.jdbi.v3.core.Handle open(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.sql.Connection connection
         0: .line 172
            aload 0 /* connection */
            ldc "null connection"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 173
            aload 0 /* connection */
            invokedynamic openConnection(Ljava/sql/Connection;)Lorg/jdbi/v3/core/ConnectionFactory;
              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/sql/Connection;
                  org/jdbi/v3/core/Jdbi.lambda$4(Ljava/sql/Connection;)Ljava/sql/Connection; (6)
                  ()Ljava/sql/Connection;
            invokestatic org.jdbi.v3.core.Jdbi.create:(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Jdbi;
            invokevirtual org.jdbi.v3.core.Jdbi.open:()Lorg/jdbi/v3/core/Handle;
            areturn
        end local 0 // java.sql.Connection connection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  connection  Ljava/sql/Connection;
    MethodParameters:
            Name  Flags
      connection  final

  public static org.jdbi.v3.core.Handle open(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String url
         0: .line 184
            aload 0 /* url */
            invokestatic org.jdbi.v3.core.Jdbi.create:(Ljava/lang/String;)Lorg/jdbi/v3/core/Jdbi;
            invokevirtual org.jdbi.v3.core.Jdbi.open:()Lorg/jdbi/v3/core/Handle;
            areturn
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   url  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      url   final

  public static org.jdbi.v3.core.Handle open(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String url
        start local 1 // java.lang.String username
        start local 2 // java.lang.String password
         0: .line 197
            aload 0 /* url */
            aload 1 /* username */
            aload 2 /* password */
            invokestatic org.jdbi.v3.core.Jdbi.create:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jdbi/v3/core/Jdbi;
            invokevirtual org.jdbi.v3.core.Jdbi.open:()Lorg/jdbi/v3/core/Handle;
            areturn
        end local 2 // java.lang.String password
        end local 1 // java.lang.String username
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0       url  Ljava/lang/String;
            0    1     1  username  Ljava/lang/String;
            0    1     2  password  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      url       final
      username  final
      password  final

  public static org.jdbi.v3.core.Handle open(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Lorg/jdbi/v3/core/Handle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String url
        start local 1 // java.util.Properties props
         0: .line 209
            aload 0 /* url */
            aload 1 /* props */
            invokestatic org.jdbi.v3.core.Jdbi.create:(Ljava/lang/String;Ljava/util/Properties;)Lorg/jdbi/v3/core/Jdbi;
            invokevirtual org.jdbi.v3.core.Jdbi.open:()Lorg/jdbi/v3/core/Handle;
            areturn
        end local 1 // java.util.Properties props
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    url  Ljava/lang/String;
            0    1     1  props  Ljava/util/Properties;
    MethodParameters:
       Name  Flags
      url    final
      props  final

  public org.jdbi.v3.core.Jdbi installPlugins();
    descriptor: ()Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Jdbi this
         0: .line 219
            ldc Lorg/jdbi/v3/core/spi/JdbiPlugin;
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
            aload 0 /* this */
            invokedynamic accept(Lorg/jdbi/v3/core/Jdbi;)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
                  org/jdbi/v3/core/Jdbi.installPlugin(Lorg/jdbi/v3/core/spi/JdbiPlugin;)Lorg/jdbi/v3/core/Jdbi; (5)
                  (Lorg/jdbi/v3/core/spi/JdbiPlugin;)V
            invokevirtual java.util.ServiceLoader.forEach:(Ljava/util/function/Consumer;)V
         1: .line 220
            getstatic org.jdbi.v3.core.Jdbi.LOG:Lorg/slf4j/Logger;
            ldc "Automatically installed plugins {}"
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.plugins:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 221
            aload 0 /* this */
            areturn
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jdbi/v3/core/Jdbi;

  public org.jdbi.v3.core.Jdbi installPlugin(org.jdbi.v3.core.spi.JdbiPlugin);
    descriptor: (Lorg/jdbi/v3/core/spi/JdbiPlugin;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // org.jdbi.v3.core.spi.JdbiPlugin plugin
         0: .line 231
            aload 1 /* plugin */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Lorg/jdbi/v3/core/spi/JdbiPlugin;)Lorg/jdbi/v3/core/internal/exceptions/CheckedConsumer;
              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
                  org/jdbi/v3/core/spi/JdbiPlugin.customizeJdbi(Lorg/jdbi/v3/core/Jdbi;)V (9 itf)
                  (Lorg/jdbi/v3/core/Jdbi;)V
            invokestatic org.jdbi.v3.core.internal.exceptions.Unchecked.consumer:(Lorg/jdbi/v3/core/internal/exceptions/CheckedConsumer;)Ljava/util/function/Consumer;
            aload 0 /* this */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         1: .line 232
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.plugins:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 1 /* plugin */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 233
            aload 0 /* this */
            areturn
        end local 1 // org.jdbi.v3.core.spi.JdbiPlugin plugin
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jdbi/v3/core/Jdbi;
            0    3     1  plugin  Lorg/jdbi/v3/core/spi/JdbiPlugin;
    MethodParameters:
        Name  Flags
      plugin  

  public org.jdbi.v3.core.Jdbi setStatementBuilderFactory(org.jdbi.v3.core.statement.StatementBuilderFactory);
    descriptor: (Lorg/jdbi/v3/core/statement/StatementBuilderFactory;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // org.jdbi.v3.core.statement.StatementBuilderFactory factory
         0: .line 246
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.statementBuilderFactory:Ljava/util/concurrent/atomic/AtomicReference;
            aload 1 /* factory */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         1: .line 247
            aload 0 /* this */
            areturn
        end local 1 // org.jdbi.v3.core.statement.StatementBuilderFactory factory
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jdbi/v3/core/Jdbi;
            0    2     1  factory  Lorg/jdbi/v3/core/statement/StatementBuilderFactory;
    MethodParameters:
         Name  Flags
      factory  

  public org.jdbi.v3.core.statement.StatementBuilderFactory getStatementBuilderFactory();
    descriptor: ()Lorg/jdbi/v3/core/statement/StatementBuilderFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Jdbi this
         0: .line 254
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.statementBuilderFactory:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.statement.StatementBuilderFactory
            areturn
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Jdbi;

  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.Jdbi this
         0: .line 259
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.config:Lorg/jdbi/v3/core/config/ConfigRegistry;
            areturn
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Jdbi;

  public org.jdbi.v3.core.Jdbi setTransactionHandler(org.jdbi.v3.core.transaction.TransactionHandler);
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionHandler;)Lorg/jdbi/v3/core/Jdbi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // org.jdbi.v3.core.transaction.TransactionHandler handler
         0: .line 276
            aload 1 /* handler */
            ldc "null transaction handler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 277
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.transactionhandler:Ljava/util/concurrent/atomic/AtomicReference;
            aload 1 /* handler */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         2: .line 278
            aload 0 /* this */
            areturn
        end local 1 // org.jdbi.v3.core.transaction.TransactionHandler handler
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jdbi/v3/core/Jdbi;
            0    3     1  handler  Lorg/jdbi/v3/core/transaction/TransactionHandler;
    MethodParameters:
         Name  Flags
      handler  

  public org.jdbi.v3.core.transaction.TransactionHandler getTransactionHandler();
    descriptor: ()Lorg/jdbi/v3/core/transaction/TransactionHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jdbi.v3.core.Jdbi this
         0: .line 285
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.transactionhandler:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.transaction.TransactionHandler
            areturn
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jdbi/v3/core/Jdbi;

  public org.jdbi.v3.core.Handle open();
    descriptor: ()Lorg/jdbi/v3/core/Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=11, args_size=1
        start local 0 // org.jdbi.v3.core.Jdbi this
         0: .line 299
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         1: .line 301
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.connectionFactory:Lorg/jdbi/v3/core/ConnectionFactory;
            invokeinterface org.jdbi.v3.core.ConnectionFactory.openConnection:()Ljava/sql/Connection;
            astore 3 /* conn */
        start local 3 // java.sql.Connection conn
         2: .line 302
            invokestatic java.lang.System.nanoTime:()J
            lstore 4 /* stop */
        start local 4 // long stop
         3: .line 304
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.plugins:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 6
      StackMap locals: org.jdbi.v3.core.Jdbi long java.sql.Connection long top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.spi.JdbiPlugin
            astore 6 /* p */
        start local 6 // org.jdbi.v3.core.spi.JdbiPlugin p
         5: .line 305
            aload 6 /* p */
            aload 3 /* conn */
            invokeinterface org.jdbi.v3.core.spi.JdbiPlugin.customizeConnection:(Ljava/sql/Connection;)Ljava/sql/Connection;
            astore 3 /* conn */
        end local 6 // org.jdbi.v3.core.spi.JdbiPlugin p
         6: .line 304
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 308
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.statementBuilderFactory:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.statement.StatementBuilderFactory
            aload 3 /* conn */
            invokeinterface org.jdbi.v3.core.statement.StatementBuilderFactory.createStatementBuilder:(Ljava/sql/Connection;)Lorg/jdbi/v3/core/statement/StatementBuilder;
            astore 6 /* cache */
        start local 6 // org.jdbi.v3.core.statement.StatementBuilder cache
         8: .line 309
            new org.jdbi.v3.core.Handle
            dup
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.config:Lorg/jdbi/v3/core/config/ConfigRegistry;
            invokevirtual org.jdbi.v3.core.config.ConfigRegistry.createCopy:()Lorg/jdbi/v3/core/config/ConfigRegistry;
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.connectionFactory:Lorg/jdbi/v3/core/ConnectionFactory;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic close(Lorg/jdbi/v3/core/ConnectionFactory;)Lorg/jdbi/v3/core/Handle$ConnectionCloser;
              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/sql/Connection;)V
                  org/jdbi/v3/core/ConnectionFactory.closeConnection(Ljava/sql/Connection;)V (9 itf)
                  (Ljava/sql/Connection;)V
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.transactionhandler:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.transaction.TransactionHandler
            aload 6 /* cache */
            aload 3 /* conn */
            invokespecial org.jdbi.v3.core.Handle.<init>:(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
            astore 7 /* h */
        start local 7 // org.jdbi.v3.core.Handle h
         9: .line 310
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.plugins:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 10
            goto 12
      StackMap locals: org.jdbi.v3.core.Jdbi long java.sql.Connection long org.jdbi.v3.core.statement.StatementBuilder org.jdbi.v3.core.Handle top top java.util.Iterator
      StackMap stack:
        10: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.spi.JdbiPlugin
            astore 9 /* p */
        start local 9 // org.jdbi.v3.core.spi.JdbiPlugin p
        11: .line 311
            aload 9 /* p */
            aload 7 /* h */
            invokeinterface org.jdbi.v3.core.spi.JdbiPlugin.customizeHandle:(Lorg/jdbi/v3/core/Handle;)Lorg/jdbi/v3/core/Handle;
            astore 7 /* h */
        end local 9 // org.jdbi.v3.core.spi.JdbiPlugin p
        12: .line 310
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        13: .line 313
            getstatic org.jdbi.v3.core.Jdbi.LOG:Lorg/slf4j/Logger;
            ldc "Jdbi [{}] obtain handle [{}] in {}ms"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 7 /* h */
            aastore
            dup
            iconst_2
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 4 /* stop */
            lload 1 /* start */
            lsub
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 314
            aload 7 /* h */
        15: areturn
        end local 7 // org.jdbi.v3.core.Handle h
        end local 6 // org.jdbi.v3.core.statement.StatementBuilder cache
        end local 4 // long stop
        end local 3 // java.sql.Connection conn
        end local 1 // long start
        16: .line 315
      StackMap locals: org.jdbi.v3.core.Jdbi
      StackMap stack: java.sql.SQLException
            astore 1 /* e */
        start local 1 // java.sql.SQLException e
        17: .line 316
            new org.jdbi.v3.core.ConnectionException
            dup
            aload 1 /* e */
            invokespecial org.jdbi.v3.core.ConnectionException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.sql.SQLException e
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lorg/jdbi/v3/core/Jdbi;
            1   16     1  start  J
            2   16     3   conn  Ljava/sql/Connection;
            3   16     4   stop  J
            5    6     6      p  Lorg/jdbi/v3/core/spi/JdbiPlugin;
            8   16     6  cache  Lorg/jdbi/v3/core/statement/StatementBuilder;
            9   16     7      h  Lorg/jdbi/v3/core/Handle;
           11   12     9      p  Lorg/jdbi/v3/core/spi/JdbiPlugin;
           17   18     1      e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0    15      16  Class java.sql.SQLException

  public <R, X extends java.lang.Exception> R withHandle(org.jdbi.v3.core.HandleCallback<R, X>) throws X;
    descriptor: (Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // org.jdbi.v3.core.HandleCallback callback
         0: .line 333
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            ifnull 2
         1: .line 334
            aload 1 /* callback */
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.extension.HandleSupplier
            invokeinterface org.jdbi.v3.core.extension.HandleSupplier.getHandle:()Lorg/jdbi/v3/core/Handle;
            invokeinterface org.jdbi.v3.core.HandleCallback.withHandle:(Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            areturn
         2: .line 337
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: aload 0 /* this */
            invokevirtual org.jdbi.v3.core.Jdbi.open:()Lorg/jdbi/v3/core/Handle;
            astore 4 /* h */
        start local 4 // org.jdbi.v3.core.Handle h
         4: .line 338
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            new org.jdbi.v3.core.ConstantHandleSupplier
            dup
            aload 4 /* h */
            invokespecial org.jdbi.v3.core.ConstantHandleSupplier.<init>:(Lorg/jdbi/v3/core/Handle;)V
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         5: .line 339
            aload 1 /* callback */
            aload 4 /* h */
            invokeinterface org.jdbi.v3.core.HandleCallback.withHandle:(Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            astore 6
         6: .line 340
            aload 4 /* h */
            ifnull 7
            aload 4 /* h */
            invokevirtual org.jdbi.v3.core.Handle.close:()V
         7: .line 341
      StackMap locals: org.jdbi.v3.core.Jdbi org.jdbi.v3.core.HandleCallback java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.Handle top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         8: .line 339
            aload 6
            areturn
      StackMap locals: org.jdbi.v3.core.Jdbi org.jdbi.v3.core.HandleCallback java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.Handle
      StackMap stack: java.lang.Throwable
         9: astore 2
        10: .line 340
            aload 4 /* h */
            ifnull 11
            aload 4 /* h */
            invokevirtual org.jdbi.v3.core.Handle.close:()V
        end local 4 // org.jdbi.v3.core.Handle h
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 3
            aload 2
            ifnonnull 13
            aload 3
            astore 2
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 2
            aload 3
            if_acmpeq 14
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
      StackMap locals: org.jdbi.v3.core.Jdbi org.jdbi.v3.core.HandleCallback
      StackMap stack: java.lang.Throwable
        15: astore 5
        16: .line 341
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
        17: .line 342
            aload 5
            athrow
        end local 1 // org.jdbi.v3.core.HandleCallback callback
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/jdbi/v3/core/Jdbi;
            0   18     1  callback  Lorg/jdbi/v3/core/HandleCallback<TR;TX;>;
            4   11     4         h  Lorg/jdbi/v3/core/Handle;
      Exception table:
        from    to  target  type
           4     6       9  any
           3     7      12  any
           9    12      12  any
           2     7      15  any
           9    15      15  any
    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 useHandle(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.Jdbi this
        start local 1 // org.jdbi.v3.core.HandleConsumer callback
         0: .line 355
            aload 0 /* this */
            aload 1 /* callback */
            invokedynamic withHandle(Lorg/jdbi/v3/core/HandleConsumer;)Lorg/jdbi/v3/core/HandleCallback;
              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:
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
                  org/jdbi/v3/core/Jdbi.lambda$8(Lorg/jdbi/v3/core/HandleConsumer;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object; (6)
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            invokevirtual org.jdbi.v3.core.Jdbi.withHandle:(Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            pop
         1: .line 359
            return
        end local 1 // org.jdbi.v3.core.HandleConsumer callback
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jdbi/v3/core/Jdbi;
            0    2     1  callback  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
      callback  final

  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=2, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // org.jdbi.v3.core.HandleCallback callback
         0: .line 376
            aload 0 /* this */
            aload 1 /* callback */
            invokedynamic withHandle(Lorg/jdbi/v3/core/HandleCallback;)Lorg/jdbi/v3/core/HandleCallback;
              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:
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
                  org/jdbi/v3/core/Jdbi.lambda$9(Lorg/jdbi/v3/core/HandleCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object; (6)
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            invokevirtual org.jdbi.v3.core.Jdbi.withHandle:(Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            areturn
        end local 1 // org.jdbi.v3.core.HandleCallback callback
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jdbi/v3/core/Jdbi;
            0    1     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  final

  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.Jdbi this
        start local 1 // org.jdbi.v3.core.HandleConsumer callback
         0: .line 391
            aload 0 /* this */
            aload 1 /* callback */
            invokedynamic useHandle(Lorg/jdbi/v3/core/HandleConsumer;)Lorg/jdbi/v3/core/HandleConsumer;
              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:
                  (Lorg/jdbi/v3/core/Handle;)V
                  org/jdbi/v3/core/Jdbi.lambda$10(Lorg/jdbi/v3/core/HandleConsumer;Lorg/jdbi/v3/core/Handle;)V (6)
                  (Lorg/jdbi/v3/core/Handle;)V
            invokevirtual org.jdbi.v3.core.Jdbi.useHandle:(Lorg/jdbi/v3/core/HandleConsumer;)V
         1: .line 392
            return
        end local 1 // org.jdbi.v3.core.HandleConsumer callback
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jdbi/v3/core/Jdbi;
            0    2     1  callback  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
      callback  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=3, locals=3, args_size=3
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        start local 2 // org.jdbi.v3.core.HandleCallback callback
         0: .line 416
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* callback */
            invokedynamic withHandle(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;)Lorg/jdbi/v3/core/HandleCallback;
              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:
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
                  org/jdbi/v3/core/Jdbi.lambda$11(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object; (6)
                  (Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
            invokevirtual org.jdbi.v3.core.Jdbi.withHandle:(Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            areturn
        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.Jdbi this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jdbi/v3/core/Jdbi;
            0    1     1     level  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            0    1     2  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/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback<TR;TX;>;)TR;^TX;
    MethodParameters:
          Name  Flags
      level     final
      callback  final

  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.Jdbi this
        start local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        start local 2 // org.jdbi.v3.core.HandleConsumer callback
         0: .line 438
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* callback */
            invokedynamic useHandle(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleConsumer;)Lorg/jdbi/v3/core/HandleConsumer;
              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:
                  (Lorg/jdbi/v3/core/Handle;)V
                  org/jdbi/v3/core/Jdbi.lambda$12(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleConsumer;Lorg/jdbi/v3/core/Handle;)V (6)
                  (Lorg/jdbi/v3/core/Handle;)V
            invokevirtual org.jdbi.v3.core.Jdbi.useHandle:(Lorg/jdbi/v3/core/HandleConsumer;)V
         1: .line 439
            return
        end local 2 // org.jdbi.v3.core.HandleConsumer callback
        end local 1 // org.jdbi.v3.core.transaction.TransactionIsolationLevel level
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jdbi/v3/core/Jdbi;
            0    2     1     level  Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;
            0    2     2  callback  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     final
      callback  final

  public <R, E, X extends java.lang.Exception> R withExtension(java.lang.Class<E>, org.jdbi.v3.core.extension.ExtensionCallback<R, E, X>) throws org.jdbi.v3.core.extension.NoSuchExtensionException, X;
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/core/extension/ExtensionCallback;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // java.lang.Class extensionType
        start local 2 // org.jdbi.v3.core.extension.ExtensionCallback callback
         0: .line 457
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            ifnull 2
         1: .line 458
            aload 0 /* this */
            aload 1 /* extensionType */
            aload 2 /* callback */
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.jdbi.v3.core.extension.HandleSupplier
            invokevirtual org.jdbi.v3.core.Jdbi.callWithExtension:(Ljava/lang/Class;Lorg/jdbi/v3/core/extension/ExtensionCallback;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
            areturn
         2: .line 461
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: new org.jdbi.v3.core.LazyHandleSupplier
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.config:Lorg/jdbi/v3/core/config/ConfigRegistry;
            invokespecial org.jdbi.v3.core.LazyHandleSupplier.<init>:(Lorg/jdbi/v3/core/Jdbi;Lorg/jdbi/v3/core/config/ConfigRegistry;)V
            astore 5 /* handleSupplier */
        start local 5 // org.jdbi.v3.core.LazyHandleSupplier handleSupplier
         4: .line 462
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            aload 5 /* handleSupplier */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         5: .line 463
            aload 0 /* this */
            aload 1 /* extensionType */
            aload 2 /* callback */
            aload 5 /* handleSupplier */
            invokevirtual org.jdbi.v3.core.Jdbi.callWithExtension:(Ljava/lang/Class;Lorg/jdbi/v3/core/extension/ExtensionCallback;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
            astore 7
         6: .line 464
            aload 5 /* handleSupplier */
            ifnull 7
            aload 5 /* handleSupplier */
            invokevirtual org.jdbi.v3.core.LazyHandleSupplier.close:()V
         7: .line 465
      StackMap locals: org.jdbi.v3.core.Jdbi java.lang.Class org.jdbi.v3.core.extension.ExtensionCallback java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.LazyHandleSupplier top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
         8: .line 463
            aload 7
            areturn
      StackMap locals: org.jdbi.v3.core.Jdbi java.lang.Class org.jdbi.v3.core.extension.ExtensionCallback java.lang.Throwable java.lang.Throwable org.jdbi.v3.core.LazyHandleSupplier
      StackMap stack: java.lang.Throwable
         9: astore 3
        10: .line 464
            aload 5 /* handleSupplier */
            ifnull 11
            aload 5 /* handleSupplier */
            invokevirtual org.jdbi.v3.core.LazyHandleSupplier.close:()V
        end local 5 // org.jdbi.v3.core.LazyHandleSupplier handleSupplier
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 3
            ifnonnull 13
            aload 4
            astore 3
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3
            aload 4
            if_acmpeq 14
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
      StackMap locals: org.jdbi.v3.core.Jdbi java.lang.Class org.jdbi.v3.core.extension.ExtensionCallback
      StackMap stack: java.lang.Throwable
        15: astore 6
        16: .line 465
            aload 0 /* this */
            getfield org.jdbi.v3.core.Jdbi.threadHandleSupplier:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.remove:()V
        17: .line 466
            aload 6
            athrow
        end local 2 // org.jdbi.v3.core.extension.ExtensionCallback callback
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lorg/jdbi/v3/core/Jdbi;
            0   18     1   extensionType  Ljava/lang/Class<TE;>;
            0   18     2        callback  Lorg/jdbi/v3/core/extension/ExtensionCallback<TR;TE;TX;>;
            4   11     5  handleSupplier  Lorg/jdbi/v3/core/LazyHandleSupplier;
      Exception table:
        from    to  target  type
           4     6       9  any
           3     7      12  any
           9    12      12  any
           2     7      15  any
           9    15      15  any
    Exceptions:
      throws org.jdbi.v3.core.extension.NoSuchExtensionException, java.lang.Exception
    Signature: <R:Ljava/lang/Object;E:Ljava/lang/Object;X:Ljava/lang/Exception;>(Ljava/lang/Class<TE;>;Lorg/jdbi/v3/core/extension/ExtensionCallback<TR;TE;TX;>;)TR;^Lorg/jdbi/v3/core/extension/NoSuchExtensionException;^TX;
    MethodParameters:
               Name  Flags
      extensionType  
      callback       

  private <R, E, X extends java.lang.Exception> R callWithExtension(java.lang.Class<E>, org.jdbi.v3.core.extension.ExtensionCallback<R, E, X>, org.jdbi.v3.core.extension.HandleSupplier) throws X;
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/core/extension/ExtensionCallback;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // java.lang.Class extensionType
        start local 2 // org.jdbi.v3.core.extension.ExtensionCallback callback
        start local 3 // org.jdbi.v3.core.extension.HandleSupplier handle
         0: .line 472
            aload 0 /* this */
            ldc Lorg/jdbi/v3/core/extension/Extensions;
            invokevirtual org.jdbi.v3.core.Jdbi.getConfig:(Ljava/lang/Class;)Lorg/jdbi/v3/core/config/JdbiConfig;
            checkcast org.jdbi.v3.core.extension.Extensions
         1: .line 473
            aload 1 /* extensionType */
            aload 3 /* handle */
            invokevirtual org.jdbi.v3.core.extension.Extensions.findFor:(Ljava/lang/Class;Lorg/jdbi/v3/core/extension/HandleSupplier;)Ljava/util/Optional;
         2: .line 474
            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/Jdbi.lambda$13(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 472
            astore 4 /* extension */
        start local 4 // java.lang.Object extension
         4: .line 476
            aload 2 /* callback */
            aload 4 /* extension */
            invokeinterface org.jdbi.v3.core.extension.ExtensionCallback.withExtension:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object extension
        end local 3 // org.jdbi.v3.core.extension.HandleSupplier handle
        end local 2 // org.jdbi.v3.core.extension.ExtensionCallback callback
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/jdbi/v3/core/Jdbi;
            0    5     1  extensionType  Ljava/lang/Class<TE;>;
            0    5     2       callback  Lorg/jdbi/v3/core/extension/ExtensionCallback<TR;TE;TX;>;
            0    5     3         handle  Lorg/jdbi/v3/core/extension/HandleSupplier;
            4    5     4      extension  TE;
    Exceptions:
      throws java.lang.Exception
    Signature: <R:Ljava/lang/Object;E:Ljava/lang/Object;X:Ljava/lang/Exception;>(Ljava/lang/Class<TE;>;Lorg/jdbi/v3/core/extension/ExtensionCallback<TR;TE;TX;>;Lorg/jdbi/v3/core/extension/HandleSupplier;)TR;^TX;
    MethodParameters:
               Name  Flags
      extensionType  
      callback       
      handle         

  public <E, X extends java.lang.Exception> void useExtension(java.lang.Class<E>, org.jdbi.v3.core.extension.ExtensionConsumer<E, X>) throws org.jdbi.v3.core.extension.NoSuchExtensionException, X;
    descriptor: (Ljava/lang/Class;Lorg/jdbi/v3/core/extension/ExtensionConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // java.lang.Class extensionType
        start local 2 // org.jdbi.v3.core.extension.ExtensionConsumer callback
         0: .line 492
            aload 0 /* this */
            aload 1 /* extensionType */
            aload 2 /* callback */
            invokedynamic withExtension(Lorg/jdbi/v3/core/extension/ExtensionConsumer;)Lorg/jdbi/v3/core/extension/ExtensionCallback;
              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;)Ljava/lang/Object;
                  org/jdbi/v3/core/Jdbi.lambda$14(Lorg/jdbi/v3/core/extension/ExtensionConsumer;Ljava/lang/Object;)Ljava/lang/Object; (6)
                  (Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.jdbi.v3.core.Jdbi.withExtension:(Ljava/lang/Class;Lorg/jdbi/v3/core/extension/ExtensionCallback;)Ljava/lang/Object;
            pop
         1: .line 496
            return
        end local 2 // org.jdbi.v3.core.extension.ExtensionConsumer callback
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/jdbi/v3/core/Jdbi;
            0    2     1  extensionType  Ljava/lang/Class<TE;>;
            0    2     2       callback  Lorg/jdbi/v3/core/extension/ExtensionConsumer<TE;TX;>;
    Exceptions:
      throws org.jdbi.v3.core.extension.NoSuchExtensionException, java.lang.Exception
    Signature: <E:Ljava/lang/Object;X:Ljava/lang/Exception;>(Ljava/lang/Class<TE;>;Lorg/jdbi/v3/core/extension/ExtensionConsumer<TE;TX;>;)V^Lorg/jdbi/v3/core/extension/NoSuchExtensionException;^TX;
    MethodParameters:
               Name  Flags
      extensionType  
      callback       

  public <E> E onDemand(java.lang.Class<E>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jdbi.v3.core.Jdbi this
        start local 1 // java.lang.Class extensionType
         0: .line 506
            aload 1 /* extensionType */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 2
         1: .line 507
            new java.lang.IllegalArgumentException
            dup
            ldc "On-demand extensions are only supported for interfaces."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc Lorg/jdbi/v3/core/extension/Extensions;
            invokevirtual org.jdbi.v3.core.Jdbi.getConfig:(Ljava/lang/Class;)Lorg/jdbi/v3/core/config/JdbiConfig;
            checkcast org.jdbi.v3.core.extension.Extensions
            aload 1 /* extensionType */
            invokevirtual org.jdbi.v3.core.extension.Extensions.hasExtensionFor:(Ljava/lang/Class;)Z
            ifne 4
         3: .line 510
            new org.jdbi.v3.core.extension.NoSuchExtensionException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Extension not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* extensionType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.jdbi.v3.core.extension.NoSuchExtensionException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* extensionType */
            invokestatic org.jdbi.v3.core.OnDemandExtensions.create:(Lorg/jdbi/v3/core/Jdbi;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class extensionType
        end local 0 // org.jdbi.v3.core.Jdbi this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/jdbi/v3/core/Jdbi;
            0    5     1  extensionType  Ljava/lang/Class<TE;>;
    Exceptions:
      throws org.jdbi.v3.core.extension.NoSuchExtensionException
    Signature: <E:Ljava/lang/Object;>(Ljava/lang/Class<TE;>;)TE;
    MethodParameters:
               Name  Flags
      extensionType  

  private static java.sql.Connection lambda$1(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 113
            aload 0
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;)Ljava/sql/Connection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.sql.SQLException

  private static java.sql.Connection lambda$2(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 125
            aload 0
            aload 1
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.sql.SQLException

  private static java.sql.Connection lambda$3(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 139
            aload 0
            aload 1
            aload 2
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.sql.SQLException

  private static java.sql.Connection lambda$4(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)Ljava/sql/Connection;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 173
            aload 0
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.sql.SQLException

  private static java.lang.Object lambda$8(org.jdbi.v3.core.HandleConsumer, org.jdbi.v3.core.Handle);
    descriptor: (Lorg/jdbi/v3/core/HandleConsumer;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.jdbi.v3.core.Handle h
         0: .line 356
            aload 0
            aload 1 /* h */
            invokeinterface org.jdbi.v3.core.HandleConsumer.useHandle:(Lorg/jdbi/v3/core/Handle;)V
         1: .line 357
            aconst_null
            areturn
        end local 1 // org.jdbi.v3.core.Handle h
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     h  Lorg/jdbi/v3/core/Handle;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$9(org.jdbi.v3.core.HandleCallback, org.jdbi.v3.core.Handle);
    descriptor: (Lorg/jdbi/v3/core/HandleCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.jdbi.v3.core.Handle handle
         0: .line 376
            aload 1 /* handle */
            aload 0
            invokevirtual org.jdbi.v3.core.Handle.inTransaction:(Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            areturn
        end local 1 // org.jdbi.v3.core.Handle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     1  handle  Lorg/jdbi/v3/core/Handle;
    Exceptions:
      throws java.lang.Exception

  private static void lambda$10(org.jdbi.v3.core.HandleConsumer, org.jdbi.v3.core.Handle);
    descriptor: (Lorg/jdbi/v3/core/HandleConsumer;Lorg/jdbi/v3/core/Handle;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.jdbi.v3.core.Handle handle
         0: .line 391
            aload 1 /* handle */
            aload 0
            invokevirtual org.jdbi.v3.core.Handle.useTransaction:(Lorg/jdbi/v3/core/HandleConsumer;)V
            return
        end local 1 // org.jdbi.v3.core.Handle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     1  handle  Lorg/jdbi/v3/core/Handle;
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Object lambda$11(org.jdbi.v3.core.transaction.TransactionIsolationLevel, org.jdbi.v3.core.HandleCallback, org.jdbi.v3.core.Handle);
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;Lorg/jdbi/v3/core/Handle;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // org.jdbi.v3.core.Handle handle
         0: .line 416
            aload 2 /* handle */
            aload 0
            aload 1
            invokevirtual org.jdbi.v3.core.Handle.inTransaction:(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleCallback;)Ljava/lang/Object;
            areturn
        end local 2 // org.jdbi.v3.core.Handle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     2  handle  Lorg/jdbi/v3/core/Handle;
    Exceptions:
      throws java.lang.Exception

  private static void lambda$12(org.jdbi.v3.core.transaction.TransactionIsolationLevel, org.jdbi.v3.core.HandleConsumer, org.jdbi.v3.core.Handle);
    descriptor: (Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleConsumer;Lorg/jdbi/v3/core/Handle;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // org.jdbi.v3.core.Handle handle
         0: .line 438
            aload 2 /* handle */
            aload 0
            aload 1
            invokevirtual org.jdbi.v3.core.Handle.useTransaction:(Lorg/jdbi/v3/core/transaction/TransactionIsolationLevel;Lorg/jdbi/v3/core/HandleConsumer;)V
            return
        end local 2 // org.jdbi.v3.core.Handle handle
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     2  handle  Lorg/jdbi/v3/core/Handle;
    Exceptions:
      throws java.lang.Exception

  private static org.jdbi.v3.core.extension.NoSuchExtensionException lambda$13(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/jdbi/v3/core/extension/NoSuchExtensionException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
         0: .line 474
            new org.jdbi.v3.core.extension.NoSuchExtensionException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Extension not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.jdbi.v3.core.extension.NoSuchExtensionException.<init>:(Ljava/lang/String;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.Object lambda$14(org.jdbi.v3.core.extension.ExtensionConsumer, java.lang.Object);
    descriptor: (Lorg/jdbi/v3/core/extension/ExtensionConsumer;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object extension
         0: .line 493
            aload 0
            aload 1 /* extension */
            invokeinterface org.jdbi.v3.core.extension.ExtensionConsumer.useExtension:(Ljava/lang/Object;)V
         1: .line 494
            aconst_null
            areturn
        end local 1 // java.lang.Object extension
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     1  extension  TE;
    Exceptions:
      throws java.lang.Exception
}
Signature: Ljava/lang/Object;Lorg/jdbi/v3/core/config/Configurable<Lorg/jdbi/v3/core/Jdbi;>;
SourceFile: "Jdbi.java"
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