public class java.sql.DriverManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.sql.DriverManager
  super_class: java.lang.Object
{
  private static final java.util.concurrent.CopyOnWriteArrayList<java.sql.DriverInfo> registeredDrivers;
    descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/CopyOnWriteArrayList<Ljava/sql/DriverInfo;>;

  private static volatile int loginTimeout;
    descriptor: I
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile java.io.PrintWriter logWriter;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile java.io.PrintStream logStream;
    descriptor: Ljava/io/PrintStream;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final java.lang.Object logSync;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object lockForInitDrivers;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile boolean driversInitialized;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final java.lang.String JDBC_DRIVERS_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdbc.drivers"

  static final java.sql.SQLPermission SET_LOG_PERMISSION;
    descriptor: Ljava/sql/SQLPermission;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.sql.SQLPermission DEREGISTER_DRIVER_PERMISSION;
    descriptor: Ljava/sql/SQLPermission;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 86
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
         1: .line 87
            iconst_0
            putstatic java.sql.DriverManager.loginTimeout:I
         2: .line 88
            aconst_null
            putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
         3: .line 89
            aconst_null
            putstatic java.sql.DriverManager.logStream:Ljava/io/PrintStream;
         4: .line 91
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic java.sql.DriverManager.logSync:Ljava/lang/Object;
         5: .line 93
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic java.sql.DriverManager.lockForInitDrivers:Ljava/lang/Object;
         6: .line 106
            new java.sql.SQLPermission
            dup
            ldc "setLog"
            invokespecial java.sql.SQLPermission.<init>:(Ljava/lang/String;)V
         7: .line 105
            putstatic java.sql.DriverManager.SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
         8: .line 114
            new java.sql.SQLPermission
            dup
            ldc "deregisterDriver"
            invokespecial java.sql.SQLPermission.<init>:(Ljava/lang/String;)V
         9: .line 113
            putstatic java.sql.DriverManager.DEREGISTER_DRIVER_PERMISSION:Ljava/sql/SQLPermission;
        10: .line 114
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.sql.DriverManager this
         0: .line 98
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.sql.DriverManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/sql/DriverManager;

  public static java.io.PrintWriter getLogWriter();
    descriptor: ()Ljava/io/PrintWriter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 129
            getstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setLogWriter(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.io.PrintWriter out
         0: .line 150
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sec */
        start local 1 // java.lang.SecurityManager sec
         1: .line 151
            aload 1 /* sec */
            ifnull 3
         2: .line 152
            aload 1 /* sec */
            getstatic java.sql.DriverManager.SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         3: .line 154
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aconst_null
            putstatic java.sql.DriverManager.logStream:Ljava/io/PrintStream;
         4: .line 155
            aload 0 /* out */
            putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
         5: .line 156
            return
        end local 1 // java.lang.SecurityManager sec
        end local 0 // java.io.PrintWriter out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   out  Ljava/io/PrintWriter;
            1    6     1   sec  Ljava/lang/SecurityManager;
    MethodParameters:
      Name  Flags
      out   

  public static java.sql.Connection getConnection(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String url
        start local 1 // java.util.Properties info
         0: .line 189
            aload 0 /* url */
            aload 1 /* info */
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/Class;)Ljava/sql/Connection;
            areturn
        end local 1 // java.util.Properties info
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   url  Ljava/lang/String;
            0    1     1  info  Ljava/util/Properties;
    Exceptions:
      throws java.sql.SQLException
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
      Name  Flags
      url   
      info  

  public static java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.String url
        start local 1 // java.lang.String user
        start local 2 // java.lang.String password
         0: .line 219
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 3 /* info */
        start local 3 // java.util.Properties info
         1: .line 221
            aload 1 /* user */
            ifnull 3
         2: .line 222
            aload 3 /* info */
            ldc "user"
            aload 1 /* user */
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 224
      StackMap locals: java.util.Properties
      StackMap stack:
            aload 2 /* password */
            ifnull 5
         4: .line 225
            aload 3 /* info */
            ldc "password"
            aload 2 /* password */
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* url */
            aload 3 /* info */
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/Class;)Ljava/sql/Connection;
            areturn
        end local 3 // java.util.Properties info
        end local 2 // java.lang.String password
        end local 1 // java.lang.String user
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0       url  Ljava/lang/String;
            0    6     1      user  Ljava/lang/String;
            0    6     2  password  Ljava/lang/String;
            1    6     3      info  Ljava/util/Properties;
    Exceptions:
      throws java.sql.SQLException
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
          Name  Flags
      url       
      user      
      password  

  public static java.sql.Connection getConnection(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String url
         0: .line 250
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* info */
        start local 1 // java.util.Properties info
         1: .line 251
            aload 0 /* url */
            aload 1 /* info */
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/Class;)Ljava/sql/Connection;
            areturn
        end local 1 // java.util.Properties info
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   url  Ljava/lang/String;
            1    2     1  info  Ljava/util/Properties;
    Exceptions:
      throws java.sql.SQLException
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
      Name  Flags
      url   

  public static java.sql.Driver getDriver(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/sql/Driver;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String url
         0: .line 269
            new java.lang.StringBuilder
            dup
            ldc "DriverManager.getDriver(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
         1: .line 271
            invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
         2: .line 273
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 1 /* callerClass */
        start local 1 // java.lang.Class callerClass
         3: .line 277
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: java.lang.String java.lang.Class top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.sql.DriverInfo
            astore 2 /* aDriver */
        start local 2 // java.sql.DriverInfo aDriver
         5: .line 280
            aload 2 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            aload 1 /* callerClass */
            invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/Class;)Z
            ifeq 12
         6: .line 282
            aload 2 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            aload 0 /* url */
            invokeinterface java.sql.Driver.acceptsURL:(Ljava/lang/String;)Z
            ifeq 13
         7: .line 284
            new java.lang.StringBuilder
            dup
            ldc "getDriver returning "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
         8: .line 285
            aload 2 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
         9: areturn
        10: .line 288
      StackMap locals: java.lang.String java.lang.Class java.sql.DriverInfo java.util.Iterator
      StackMap stack: java.sql.SQLException
            pop
        11: .line 291
            goto 13
        12: .line 292
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "    skipping: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        end local 2 // java.sql.DriverInfo aDriver
        13: .line 277
      StackMap locals: java.lang.String java.lang.Class top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        14: .line 297
            ldc "getDriver: no suitable driver"
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        15: .line 298
            new java.sql.SQLException
            dup
            ldc "No suitable driver"
            ldc "08001"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Class callerClass
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0          url  Ljava/lang/String;
            3   16     1  callerClass  Ljava/lang/Class<*>;
            5   13     2      aDriver  Ljava/sql/DriverInfo;
      Exception table:
        from    to  target  type
           6     9      10  Class java.sql.SQLException
    Exceptions:
      throws java.sql.SQLException
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
      Name  Flags
      url   

  public static void registerDriver(java.sql.Driver);
    descriptor: (Ljava/sql/Driver;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.sql.Driver driver
         0: .line 317
            aload 0 /* driver */
            aconst_null
            invokestatic java.sql.DriverManager.registerDriver:(Ljava/sql/Driver;Ljava/sql/DriverAction;)V
         1: .line 318
            return
        end local 0 // java.sql.Driver driver
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  driver  Ljava/sql/Driver;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
        Name  Flags
      driver  

  public static void registerDriver(java.sql.Driver, java.sql.DriverAction);
    descriptor: (Ljava/sql/Driver;Ljava/sql/DriverAction;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.sql.Driver driver
        start local 1 // java.sql.DriverAction da
         0: .line 340
            aload 0 /* driver */
            ifnull 3
         1: .line 341
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            new java.sql.DriverInfo
            dup
            aload 0 /* driver */
            aload 1 /* da */
            invokespecial java.sql.DriverInfo.<init>:(Ljava/sql/Driver;Ljava/sql/DriverAction;)V
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.addIfAbsent:(Ljava/lang/Object;)Z
            pop
         2: .line 342
            goto 4
         3: .line 344
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         4: .line 347
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "registerDriver: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* driver */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
         5: .line 349
            return
        end local 1 // java.sql.DriverAction da
        end local 0 // java.sql.Driver driver
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  driver  Ljava/sql/Driver;
            0    6     1      da  Ljava/sql/DriverAction;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
        Name  Flags
      driver  
      da      

  public static void deregisterDriver(java.sql.Driver);
    descriptor: (Ljava/sql/Driver;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.sql.Driver driver
         0: .line 379
            aload 0 /* driver */
            ifnonnull 2
         1: .line 380
            return
         2: .line 383
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sec */
        start local 1 // java.lang.SecurityManager sec
         3: .line 384
            aload 1 /* sec */
            ifnull 5
         4: .line 385
            aload 1 /* sec */
            getstatic java.sql.DriverManager.DEREGISTER_DRIVER_PERMISSION:Ljava/sql/SQLPermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         5: .line 388
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "DriverManager.deregisterDriver: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* driver */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
         6: .line 390
            new java.sql.DriverInfo
            dup
            aload 0 /* driver */
            aconst_null
            invokespecial java.sql.DriverInfo.<init>:(Ljava/sql/Driver;Ljava/sql/DriverAction;)V
            astore 2 /* aDriver */
        start local 2 // java.sql.DriverInfo aDriver
         7: .line 391
            getstatic java.sql.DriverManager.lockForInitDrivers:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         8: .line 392
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 2 /* aDriver */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.contains:(Ljava/lang/Object;)Z
            ifeq 16
         9: .line 393
            aload 0 /* driver */
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/Class;)Z
            ifeq 15
        10: .line 394
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 2 /* aDriver */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.indexOf:(Ljava/lang/Object;)I
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.get:(I)Ljava/lang/Object;
            checkcast java.sql.DriverInfo
            astore 4 /* di */
        start local 4 // java.sql.DriverInfo di
        11: .line 397
            aload 4 /* di */
            invokevirtual java.sql.DriverInfo.action:()Ljava/sql/DriverAction;
            ifnull 13
        12: .line 398
            aload 4 /* di */
            invokevirtual java.sql.DriverInfo.action:()Ljava/sql/DriverAction;
            invokeinterface java.sql.DriverAction.deregister:()V
        13: .line 400
      StackMap locals: java.sql.DriverInfo java.lang.Object java.sql.DriverInfo
      StackMap stack:
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            aload 2 /* aDriver */
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.sql.DriverInfo di
        14: .line 401
            goto 17
        15: .line 404
      StackMap locals:
      StackMap stack:
            new java.lang.SecurityException
            dup
            invokespecial java.lang.SecurityException.<init>:()V
            athrow
        16: .line 407
      StackMap locals:
      StackMap stack:
            ldc "    couldn't find driver to unload"
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        17: .line 391
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 3
            monitorexit
        20: athrow
        21: .line 410
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.sql.DriverInfo aDriver
        end local 1 // java.lang.SecurityManager sec
        end local 0 // java.sql.Driver driver
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0   driver  Ljava/sql/Driver;
            3   22     1      sec  Ljava/lang/SecurityManager;
            7   22     2  aDriver  Ljava/sql/DriverInfo;
           11   14     4       di  Ljava/sql/DriverInfo;
      Exception table:
        from    to  target  type
           8    18      19  any
          19    20      19  any
    Exceptions:
      throws java.sql.SQLException
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
    MethodParameters:
        Name  Flags
      driver  

  public static java.util.Enumeration<java.sql.Driver> getDrivers();
    descriptor: ()Ljava/util/Enumeration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 424
            invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
         1: .line 426
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.sql.DriverManager.getDrivers:(Ljava/lang/Class;)Ljava/util/List;
            invokestatic java.util.Collections.enumeration:(Ljava/util/Collection;)Ljava/util/Enumeration;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Enumeration<Ljava/sql/Driver;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()

  public static java.util.stream.Stream<java.sql.Driver> drivers();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 438
            invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
         1: .line 440
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokestatic java.sql.DriverManager.getDrivers:(Ljava/lang/Class;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/stream/Stream<Ljava/sql/Driver;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()

  private static java.util.List<java.sql.Driver> getDrivers(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class callerClass
         0: .line 444
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.List result
         1: .line 446
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: java.lang.Class java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.sql.DriverInfo
            astore 2 /* aDriver */
        start local 2 // java.sql.DriverInfo aDriver
         3: .line 449
            aload 2 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            aload 0 /* callerClass */
            invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/Class;)Z
            ifeq 6
         4: .line 450
            aload 1 /* result */
            aload 2 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 451
            goto 7
         6: .line 452
      StackMap locals: java.lang.Class java.util.List java.sql.DriverInfo java.util.Iterator
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "    skipping: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* aDriver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        end local 2 // java.sql.DriverInfo aDriver
         7: .line 446
      StackMap locals: java.lang.Class java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 455
            aload 1 /* result */
            areturn
        end local 1 // java.util.List result
        end local 0 // java.lang.Class callerClass
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0  callerClass  Ljava/lang/Class<*>;
            1    9     1       result  Ljava/util/List<Ljava/sql/Driver;>;
            3    7     2      aDriver  Ljava/sql/DriverInfo;
    Signature: (Ljava/lang/Class<*>;)Ljava/util/List<Ljava/sql/Driver;>;
    MethodParameters:
             Name  Flags
      callerClass  

  public static void setLoginTimeout(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int seconds
         0: .line 467
            iload 0 /* seconds */
            putstatic java.sql.DriverManager.loginTimeout:I
         1: .line 468
            return
        end local 0 // int seconds
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  seconds  I
    MethodParameters:
         Name  Flags
      seconds  

  public static int getLoginTimeout();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 478
            getstatic java.sql.DriverManager.loginTimeout:I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setLogStream(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.PrintStream out
         0: .line 500
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sec */
        start local 1 // java.lang.SecurityManager sec
         1: .line 501
            aload 1 /* sec */
            ifnull 3
         2: .line 502
            aload 1 /* sec */
            getstatic java.sql.DriverManager.SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         3: .line 505
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* out */
            putstatic java.sql.DriverManager.logStream:Ljava/io/PrintStream;
         4: .line 506
            aload 0 /* out */
            ifnull 6
         5: .line 507
            new java.io.PrintWriter
            dup
            aload 0 /* out */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
            goto 7
         6: .line 509
      StackMap locals:
      StackMap stack:
            aconst_null
            putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
         7: .line 510
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.SecurityManager sec
        end local 0 // java.io.PrintStream out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   out  Ljava/io/PrintStream;
            1    8     1   sec  Ljava/lang/SecurityManager;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "1.2")
    MethodParameters:
      Name  Flags
      out   

  public static java.io.PrintStream getLogStream();
    descriptor: ()Ljava/io/PrintStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 522
            getstatic java.sql.DriverManager.logStream:Ljava/io/PrintStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "1.2")

  public static void println(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String message
         0: .line 531
            getstatic java.sql.DriverManager.logSync:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 532
            getstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
            ifnull 4
         2: .line 533
            getstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
            aload 0 /* message */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         3: .line 536
            getstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
         4: .line 531
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 539
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  message  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
         Name  Flags
      message  

  private static boolean isDriverAllowed(java.sql.Driver, java.lang.Class<?>);
    descriptor: (Ljava/sql/Driver;Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.sql.Driver driver
        start local 1 // java.lang.Class caller
         0: .line 546
            aload 1 /* caller */
            ifnull 1
            aload 1 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
         2: astore 2 /* callerCL */
        start local 2 // java.lang.ClassLoader callerCL
         3: .line 547
            aload 0 /* driver */
            aload 2 /* callerCL */
            invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/ClassLoader;)Z
            ireturn
        end local 2 // java.lang.ClassLoader callerCL
        end local 1 // java.lang.Class caller
        end local 0 // java.sql.Driver driver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0    driver  Ljava/sql/Driver;
            0    4     1    caller  Ljava/lang/Class<*>;
            3    4     2  callerCL  Ljava/lang/ClassLoader;
    Signature: (Ljava/sql/Driver;Ljava/lang/Class<*>;)Z
    MethodParameters:
        Name  Flags
      driver  
      caller  

  private static boolean isDriverAllowed(java.sql.Driver, java.lang.ClassLoader);
    descriptor: (Ljava/sql/Driver;Ljava/lang/ClassLoader;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.sql.Driver driver
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 551
            iconst_0
            istore 2 /* result */
        start local 2 // boolean result
         1: .line 552
            aload 0 /* driver */
            ifnull 10
         2: .line 553
            aconst_null
            astore 3 /* aClass */
        start local 3 // java.lang.Class aClass
         3: .line 555
            aload 0 /* driver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            iconst_1
            aload 1 /* classLoader */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* aClass */
         4: .line 556
            goto 7
      StackMap locals: java.sql.Driver java.lang.ClassLoader int java.lang.Class
      StackMap stack: java.lang.Exception
         5: pop
         6: .line 557
            iconst_0
            istore 2 /* result */
         7: .line 560
      StackMap locals:
      StackMap stack:
            aload 3 /* aClass */
            aload 0 /* driver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 2 /* result */
        end local 3 // java.lang.Class aClass
        10: .line 563
      StackMap locals:
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // boolean result
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // java.sql.Driver driver
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0       driver  Ljava/sql/Driver;
            0   11     1  classLoader  Ljava/lang/ClassLoader;
            1   11     2       result  Z
            3   10     3       aClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      driver       
      classLoader  

  private static void ensureDriversInitialized();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=0
         0: .line 571
            getstatic java.sql.DriverManager.driversInitialized:Z
            ifeq 2
         1: .line 572
            return
         2: .line 575
      StackMap locals:
      StackMap stack:
            getstatic java.sql.DriverManager.lockForInitDrivers:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         3: .line 576
            getstatic java.sql.DriverManager.driversInitialized:Z
            ifeq 6
         4: .line 577
            aload 0
            monitorexit
         5: return
         6: .line 581
      StackMap locals: java.lang.Object
      StackMap stack:
            new java.sql.DriverManager$1
            dup
            invokespecial java.sql.DriverManager$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* drivers */
        start local 1 // java.lang.String drivers
         7: .line 586
            goto 10
        end local 1 // java.lang.String drivers
      StackMap locals:
      StackMap stack: java.lang.Exception
         8: pop
         9: .line 587
            aconst_null
            astore 1 /* drivers */
        start local 1 // java.lang.String drivers
        10: .line 594
      StackMap locals: java.lang.String
      StackMap stack:
            new java.sql.DriverManager$2
            dup
            invokespecial java.sql.DriverManager$2.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
        11: .line 623
            new java.lang.StringBuilder
            dup
            ldc "DriverManager.initialize: jdbc.drivers = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* drivers */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        12: .line 625
            aload 1 /* drivers */
            ifnull 26
            aload 1 /* drivers */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 26
        13: .line 626
            aload 1 /* drivers */
            ldc ":"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* driversList */
        start local 2 // java.lang.String[] driversList
        14: .line 627
            new java.lang.StringBuilder
            dup
            ldc "number of Drivers:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* driversList */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        15: .line 628
            aload 2 /* driversList */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 25
      StackMap locals: java.lang.Object java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        16: aload 6
            iload 4
            aaload
            astore 3 /* aDriver */
        start local 3 // java.lang.String aDriver
        17: .line 630
            new java.lang.StringBuilder
            dup
            ldc "DriverManager.Initialize: loading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* aDriver */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        18: .line 631
            aload 3 /* aDriver */
            iconst_1
        19: .line 632
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
        20: .line 631
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
        21: .line 633
            goto 24
      StackMap locals: java.lang.Object java.lang.String java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack: java.lang.Exception
        22: astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        23: .line 634
            new java.lang.StringBuilder
            dup
            ldc "DriverManager.Initialize: load failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        end local 7 // java.lang.Exception ex
        end local 3 // java.lang.String aDriver
        24: .line 628
      StackMap locals: java.lang.Object java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        25: iload 4
            iload 5
            if_icmplt 16
        end local 2 // java.lang.String[] driversList
        26: .line 639
      StackMap locals: java.lang.Object java.lang.String
      StackMap stack:
            iconst_1
            putstatic java.sql.DriverManager.driversInitialized:Z
        27: .line 640
            ldc "JDBC DriverManager initialized"
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        end local 1 // java.lang.String drivers
        28: .line 575
            aload 0
            monitorexit
        29: goto 32
      StackMap locals: java.lang.Object
      StackMap stack: java.lang.Throwable
        30: aload 0
            monitorexit
        31: athrow
        32: .line 642
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            7    8     1      drivers  Ljava/lang/String;
           10   28     1      drivers  Ljava/lang/String;
           14   26     2  driversList  [Ljava/lang/String;
           17   24     3      aDriver  Ljava/lang/String;
           23   24     7           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Exception
          17    21      22  Class java.lang.Exception
           3     5      30  any
           6    29      30  any
          30    31      30  any

  private static java.sql.Connection getConnection(java.lang.String, java.util.Properties, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;Ljava/lang/Class;)Ljava/sql/Connection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.String url
        start local 1 // java.util.Properties info
        start local 2 // java.lang.Class caller
         0: .line 654
            aload 2 /* caller */
            ifnull 1
            aload 2 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
         2: astore 3 /* callerCL */
        start local 3 // java.lang.ClassLoader callerCL
         3: .line 655
            aload 3 /* callerCL */
            ifnull 4
            aload 3 /* callerCL */
            invokestatic java.lang.ClassLoader.getPlatformClassLoader:()Ljava/lang/ClassLoader;
            if_acmpne 5
         4: .line 656
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* callerCL */
         5: .line 659
      StackMap locals:
      StackMap stack:
            aload 0 /* url */
            ifnonnull 7
         6: .line 660
            new java.sql.SQLException
            dup
            ldc "The url cannot be null"
            ldc "08001"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
         7: .line 663
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "DriverManager.getConnection(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
         8: .line 665
            invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
         9: .line 669
            aconst_null
            astore 4 /* reason */
        start local 4 // java.sql.SQLException reason
        10: .line 671
            getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
            invokevirtual java.util.concurrent.CopyOnWriteArrayList.iterator:()Ljava/util/Iterator;
            astore 6
            goto 24
      StackMap locals: java.lang.String java.util.Properties java.lang.Class java.lang.ClassLoader java.sql.SQLException top java.util.Iterator
      StackMap stack:
        11: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.sql.DriverInfo
            astore 5 /* aDriver */
        start local 5 // java.sql.DriverInfo aDriver
        12: .line 674
            aload 5 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            aload 3 /* callerCL */
            invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/ClassLoader;)Z
            ifeq 23
        13: .line 676
            new java.lang.StringBuilder
            dup
            ldc "    trying "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        14: .line 677
            aload 5 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            aload 0 /* url */
            aload 1 /* info */
            invokeinterface java.sql.Driver.connect:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
            astore 7 /* con */
        start local 7 // java.sql.Connection con
        15: .line 678
            aload 7 /* con */
            ifnull 24
        16: .line 680
            new java.lang.StringBuilder
            dup
            ldc "getConnection returning "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* aDriver */
            getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        17: .line 681
            aload 7 /* con */
        18: areturn
        end local 7 // java.sql.Connection con
        19: .line 683
      StackMap locals: java.lang.String java.util.Properties java.lang.Class java.lang.ClassLoader java.sql.SQLException java.sql.DriverInfo java.util.Iterator
      StackMap stack: java.sql.SQLException
            astore 7 /* ex */
        start local 7 // java.sql.SQLException ex
        20: .line 684
            aload 4 /* reason */
            ifnonnull 24
        21: .line 685
            aload 7 /* ex */
            astore 4 /* reason */
        end local 7 // java.sql.SQLException ex
        22: .line 689
            goto 24
        23: .line 690
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "    skipping: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* aDriver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        end local 5 // java.sql.DriverInfo aDriver
        24: .line 671
      StackMap locals: java.lang.String java.util.Properties java.lang.Class java.lang.ClassLoader java.sql.SQLException top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        25: .line 696
            aload 4 /* reason */
            ifnull 28
        26: .line 697
            new java.lang.StringBuilder
            dup
            ldc "getConnection failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* reason */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        27: .line 698
            aload 4 /* reason */
            athrow
        28: .line 701
      StackMap locals: java.lang.String java.util.Properties java.lang.Class java.lang.ClassLoader java.sql.SQLException
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "getConnection: no suitable driver found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
        29: .line 702
            new java.sql.SQLException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No suitable driver found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc "08001"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
        end local 4 // java.sql.SQLException reason
        end local 3 // java.lang.ClassLoader callerCL
        end local 2 // java.lang.Class caller
        end local 1 // java.util.Properties info
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0       url  Ljava/lang/String;
            0   30     1      info  Ljava/util/Properties;
            0   30     2    caller  Ljava/lang/Class<*>;
            3   30     3  callerCL  Ljava/lang/ClassLoader;
           10   30     4    reason  Ljava/sql/SQLException;
           12   24     5   aDriver  Ljava/sql/DriverInfo;
           15   19     7       con  Ljava/sql/Connection;
           20   22     7        ex  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          13    18      19  Class java.sql.SQLException
    Exceptions:
      throws java.sql.SQLException
    Signature: (Ljava/lang/String;Ljava/util/Properties;Ljava/lang/Class<*>;)Ljava/sql/Connection;
    MethodParameters:
        Name  Flags
      url     
      info    
      caller  
}
SourceFile: "DriverManager.java"
NestMembers:
  java.sql.DriverManager$1  java.sql.DriverManager$2
InnerClasses:
  java.sql.DriverManager$1
  java.sql.DriverManager$2