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: new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
1: iconst_0
putstatic java.sql.DriverManager.loginTimeout:I
2: aconst_null
putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
3: aconst_null
putstatic java.sql.DriverManager.logStream:Ljava/io/PrintStream;
4: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic java.sql.DriverManager.logSync:Ljava/lang/Object;
5: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic java.sql.DriverManager.lockForInitDrivers:Ljava/lang/Object;
6: new java.sql.SQLPermission
dup
ldc "setLog"
invokespecial java.sql.SQLPermission.<init>:(Ljava/lang/String;)V
7: putstatic java.sql.DriverManager.SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
8: new java.sql.SQLPermission
dup
ldc "deregisterDriver"
invokespecial java.sql.SQLPermission.<init>:(Ljava/lang/String;)V
9: putstatic java.sql.DriverManager.DEREGISTER_DRIVER_PERMISSION:Ljava/sql/SQLPermission;
10: 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 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 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: 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 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
getstatic java.sql.DriverManager.SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
aconst_null
putstatic java.sql.DriverManager.logStream:Ljava/io/PrintStream;
4: aload 0
putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
5: return
end local 1 end local 0 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 start local 1 0: aload 0
aload 1
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 end local 0 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 start local 1 start local 2 0: new java.util.Properties
dup
invokespecial java.util.Properties.<init>:()V
astore 3
start local 3 1: aload 1
ifnull 3
2: aload 3
ldc "user"
aload 1
invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: java.util.Properties
StackMap stack:
aload 2
ifnull 5
4: aload 3
ldc "password"
aload 2
invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals:
StackMap stack:
aload 0
aload 3
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 end local 2 end local 1 end local 0 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 0: new java.util.Properties
dup
invokespecial java.util.Properties.<init>:()V
astore 1
start local 1 1: aload 0
aload 1
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 end local 0 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 0: new java.lang.StringBuilder
dup
ldc "DriverManager.getDriver(\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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: invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
2: invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
astore 1
start local 1 3: 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
start local 2 5: aload 2
getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
aload 1
invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/Class;)Z
ifeq 12
6: aload 2
getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
aload 0
invokeinterface java.sql.Driver.acceptsURL:(Ljava/lang/String;)Z
ifeq 13
7: new java.lang.StringBuilder
dup
ldc "getDriver returning "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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: aload 2
getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
9: areturn
10: StackMap locals: java.lang.String java.lang.Class java.sql.DriverInfo java.util.Iterator
StackMap stack: java.sql.SQLException
pop
11: goto 13
12: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc " skipping: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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 13: 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: ldc "getDriver: no suitable driver"
invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
15: 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 end local 0 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 0: aload 0
aconst_null
invokestatic java.sql.DriverManager.registerDriver:(Ljava/sql/Driver;Ljava/sql/DriverAction;)V
1: return
end local 0 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 start local 1 0: aload 0
ifnull 3
1: getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
new java.sql.DriverInfo
dup
aload 0
aload 1
invokespecial java.sql.DriverInfo.<init>:(Ljava/sql/Driver;Ljava/sql/DriverAction;)V
invokevirtual java.util.concurrent.CopyOnWriteArrayList.addIfAbsent:(Ljava/lang/Object;)Z
pop
2: goto 4
3: StackMap locals:
StackMap stack:
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "registerDriver: "
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;
invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
5: return
end local 1 end local 0 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 0: aload 0
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 3: aload 1
ifnull 5
4: aload 1
getstatic java.sql.DriverManager.DEREGISTER_DRIVER_PERMISSION:Ljava/sql/SQLPermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
5: 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
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: new java.sql.DriverInfo
dup
aload 0
aconst_null
invokespecial java.sql.DriverInfo.<init>:(Ljava/sql/Driver;Ljava/sql/DriverAction;)V
astore 2
start local 2 7: getstatic java.sql.DriverManager.lockForInitDrivers:Ljava/lang/Object;
dup
astore 3
monitorenter
8: getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.contains:(Ljava/lang/Object;)Z
ifeq 16
9: aload 0
invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/Class;)Z
ifeq 15
10: getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 2
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
start local 4 11: aload 4
invokevirtual java.sql.DriverInfo.action:()Ljava/sql/DriverAction;
ifnull 13
12: aload 4
invokevirtual java.sql.DriverInfo.action:()Ljava/sql/DriverAction;
invokeinterface java.sql.DriverAction.deregister:()V
13: StackMap locals: java.sql.DriverInfo java.lang.Object java.sql.DriverInfo
StackMap stack:
getstatic java.sql.DriverManager.registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(Ljava/lang/Object;)Z
pop
end local 4 14: goto 17
15: StackMap locals:
StackMap stack:
new java.lang.SecurityException
dup
invokespecial java.lang.SecurityException.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
ldc " couldn't find driver to unload"
invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 3
monitorexit
18: goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
19: aload 3
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 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: invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
1: 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: invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
1: 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 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: 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
start local 2 3: aload 2
getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
aload 0
invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/Class;)Z
ifeq 6
4: aload 1
aload 2
getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: goto 7
6: 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
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 7: 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: aload 1
areturn
end local 1 end local 0 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 0: iload 0
putstatic java.sql.DriverManager.loginTimeout:I
1: return
end local 0 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: 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 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
getstatic java.sql.DriverManager.SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
putstatic java.sql.DriverManager.logStream:Ljava/io/PrintStream;
4: aload 0
ifnull 6
5: new java.io.PrintWriter
dup
aload 0
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
goto 7
6: StackMap locals:
StackMap stack:
aconst_null
putstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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: 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 0: getstatic java.sql.DriverManager.logSync:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
ifnull 4
2: getstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
aload 0
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
3: getstatic java.sql.DriverManager.logWriter:Ljava/io/PrintWriter;
invokevirtual java.io.PrintWriter.flush:()V
4: 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: StackMap locals:
StackMap stack:
return
end local 0 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 start local 1 0: aload 1
ifnull 1
aload 1
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
start local 2 3: aload 0
aload 2
invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/ClassLoader;)Z
ireturn
end local 2 end local 1 end local 0 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 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
ifnull 10
2: aconst_null
astore 3
start local 3 3: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
iconst_1
aload 1
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 3
4: goto 7
StackMap locals: java.sql.Driver java.lang.ClassLoader int java.lang.Class
StackMap stack: java.lang.Exception
5: pop
6: iconst_0
istore 2
7: StackMap locals:
StackMap stack:
aload 3
aload 0
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
end local 3 10: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 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: getstatic java.sql.DriverManager.driversInitialized:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
getstatic java.sql.DriverManager.lockForInitDrivers:Ljava/lang/Object;
dup
astore 0
monitorenter
3: getstatic java.sql.DriverManager.driversInitialized:Z
ifeq 6
4: aload 0
monitorexit
5: return
6: 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
start local 1 7: goto 10
end local 1 StackMap locals:
StackMap stack: java.lang.Exception
8: pop
9: aconst_null
astore 1
start local 1 10: 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: new java.lang.StringBuilder
dup
ldc "DriverManager.initialize: jdbc.drivers = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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: aload 1
ifnull 26
aload 1
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
13: aload 1
ldc ":"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 14: new java.lang.StringBuilder
dup
ldc "number of Drivers:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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: aload 2
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
start local 3 17: new java.lang.StringBuilder
dup
ldc "DriverManager.Initialize: loading "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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: aload 3
iconst_1
19: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
20: invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
pop
21: 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
start local 7 23: new java.lang.StringBuilder
dup
ldc "DriverManager.Initialize: load failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
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 end local 3 24: 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 26: StackMap locals: java.lang.Object java.lang.String
StackMap stack:
iconst_1
putstatic java.sql.DriverManager.driversInitialized:Z
27: ldc "JDBC DriverManager initialized"
invokestatic java.sql.DriverManager.println:(Ljava/lang/String;)V
end local 1 28: aload 0
monitorexit
29: goto 32
StackMap locals: java.lang.Object
StackMap stack: java.lang.Throwable
30: aload 0
monitorexit
31: athrow
32: 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 start local 1 start local 2 0: aload 2
ifnull 1
aload 2
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
start local 3 3: aload 3
ifnonnull 5
4: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 3
5: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 0
ifnonnull 7
6: 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: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "DriverManager.getConnection(\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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: invokestatic java.sql.DriverManager.ensureDriversInitialized:()V
9: aconst_null
astore 4
start local 4 10: 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
start local 5 12: aload 5
getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
aload 3
invokestatic java.sql.DriverManager.isDriverAllowed:(Ljava/sql/Driver;Ljava/lang/ClassLoader;)Z
ifeq 23
13: new java.lang.StringBuilder
dup
ldc " trying "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
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: aload 5
getfield java.sql.DriverInfo.driver:Ljava/sql/Driver;
aload 0
aload 1
invokeinterface java.sql.Driver.connect:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
astore 7
start local 7 15: aload 7
ifnull 24
16: new java.lang.StringBuilder
dup
ldc "getConnection returning "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
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: aload 7
18: areturn
end local 7 19: 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
start local 7 20: aload 4
ifnonnull 24
21: aload 7
astore 4
end local 7 22: goto 24
23: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc " skipping: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
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 24: 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: aload 4
ifnull 28
26: new java.lang.StringBuilder
dup
ldc "getConnection failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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: aload 4
athrow
28: 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
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: 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
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 end local 3 end local 2 end local 1 end local 0 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