class org.apache.commons.dbcp2.DriverFactory
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.commons.dbcp2.DriverFactory
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // org.apache.commons.dbcp2.DriverFactory this
0: .line 29
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.apache.commons.dbcp2.DriverFactory this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/dbcp2/DriverFactory;
static java.sql.Driver createDriver(org.apache.commons.dbcp2.BasicDataSource);
descriptor: (Lorg/apache/commons/dbcp2/BasicDataSource;)Ljava/sql/Driver;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=1
start local 0 // org.apache.commons.dbcp2.BasicDataSource basicDataSource
0: .line 33
aload 0 /* basicDataSource */
invokevirtual org.apache.commons.dbcp2.BasicDataSource.getDriver:()Ljava/sql/Driver;
astore 1 /* driverToUse */
start local 1 // java.sql.Driver driverToUse
1: .line 34
aload 0 /* basicDataSource */
invokevirtual org.apache.commons.dbcp2.BasicDataSource.getDriverClassName:()Ljava/lang/String;
astore 2 /* driverClassName */
start local 2 // java.lang.String driverClassName
2: .line 35
aload 0 /* basicDataSource */
invokevirtual org.apache.commons.dbcp2.BasicDataSource.getDriverClassLoader:()Ljava/lang/ClassLoader;
astore 3 /* driverClassLoader */
start local 3 // java.lang.ClassLoader driverClassLoader
3: .line 36
aload 0 /* basicDataSource */
invokevirtual org.apache.commons.dbcp2.BasicDataSource.getUrl:()Ljava/lang/String;
astore 4 /* url */
start local 4 // java.lang.String url
4: .line 38
aload 1 /* driverToUse */
ifnonnull 33
5: .line 39
aconst_null
astore 5 /* driverFromCCL */
start local 5 // java.lang.Class driverFromCCL
6: .line 40
aload 2 /* driverClassName */
ifnull 19
7: .line 43
aload 3 /* driverClassLoader */
ifnonnull 10
8: .line 44
aload 2 /* driverClassName */
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 5 /* driverFromCCL */
9: .line 45
goto 19
10: .line 46
StackMap locals: org.apache.commons.dbcp2.BasicDataSource java.sql.Driver java.lang.String java.lang.ClassLoader java.lang.String java.lang.Class
StackMap stack:
aload 2 /* driverClassName */
iconst_1
aload 3 /* driverClassLoader */
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 5 /* driverFromCCL */
11: .line 48
goto 19
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
12: pop
13: .line 49
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
aload 2 /* driverClassName */
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 5 /* driverFromCCL */
14: .line 51
goto 19
StackMap locals:
StackMap stack: java.lang.Exception
15: astore 6 /* t */
start local 6 // java.lang.Exception t
16: .line 52
new java.lang.StringBuilder
dup
ldc "Cannot load JDBC driver class '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* driverClassName */
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;
astore 7 /* message */
start local 7 // java.lang.String message
17: .line 53
aload 0 /* basicDataSource */
aload 7 /* message */
aload 6 /* t */
invokevirtual org.apache.commons.dbcp2.BasicDataSource.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
18: .line 54
new java.sql.SQLException
dup
aload 7 /* message */
aload 6 /* t */
invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 // java.lang.String message
end local 6 // java.lang.Exception t
19: .line 59
StackMap locals:
StackMap stack:
aload 5 /* driverFromCCL */
ifnonnull 22
20: .line 60
aload 4 /* url */
invokestatic java.sql.DriverManager.getDriver:(Ljava/lang/String;)Ljava/sql/Driver;
astore 1 /* driverToUse */
21: .line 61
goto 33
22: .line 66
StackMap locals:
StackMap stack:
aload 5 /* driverFromCCL */
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.sql.Driver
astore 1 /* driverToUse */
23: .line 67
aload 1 /* driverToUse */
aload 4 /* url */
invokeinterface java.sql.Driver.acceptsURL:(Ljava/lang/String;)Z
ifne 33
24: .line 68
new java.sql.SQLException
dup
ldc "No suitable driver"
ldc "08001"
invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
25: .line 71
StackMap locals:
StackMap stack: java.lang.Exception
astore 6 /* t */
start local 6 // java.lang.Exception t
26: .line 72
new java.lang.StringBuilder
dup
ldc "Cannot create JDBC driver of class '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
27: .line 73
aload 2 /* driverClassName */
ifnull 28
aload 2 /* driverClassName */
goto 29
StackMap locals: org.apache.commons.dbcp2.BasicDataSource java.sql.Driver java.lang.String java.lang.ClassLoader java.lang.String java.lang.Class java.lang.Exception
StackMap stack: java.lang.StringBuilder
28: ldc ""
StackMap locals: org.apache.commons.dbcp2.BasicDataSource java.sql.Driver java.lang.String java.lang.ClassLoader java.lang.String java.lang.Class java.lang.Exception
StackMap stack: java.lang.StringBuilder java.lang.String
29: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' for connect URL '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4 /* url */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
30: .line 72
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7 /* message */
start local 7 // java.lang.String message
31: .line 74
aload 0 /* basicDataSource */
aload 7 /* message */
aload 6 /* t */
invokevirtual org.apache.commons.dbcp2.BasicDataSource.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
32: .line 75
new java.sql.SQLException
dup
aload 7 /* message */
aload 6 /* t */
invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 // java.lang.String message
end local 6 // java.lang.Exception t
end local 5 // java.lang.Class driverFromCCL
33: .line 78
StackMap locals:
StackMap stack:
aload 1 /* driverToUse */
areturn
end local 4 // java.lang.String url
end local 3 // java.lang.ClassLoader driverClassLoader
end local 2 // java.lang.String driverClassName
end local 1 // java.sql.Driver driverToUse
end local 0 // org.apache.commons.dbcp2.BasicDataSource basicDataSource
LocalVariableTable:
Start End Slot Name Signature
0 34 0 basicDataSource Lorg/apache/commons/dbcp2/BasicDataSource;
1 34 1 driverToUse Ljava/sql/Driver;
2 34 2 driverClassName Ljava/lang/String;
3 34 3 driverClassLoader Ljava/lang/ClassLoader;
4 34 4 url Ljava/lang/String;
6 33 5 driverFromCCL Ljava/lang/Class<*>;
16 19 6 t Ljava/lang/Exception;
17 19 7 message Ljava/lang/String;
26 33 6 t Ljava/lang/Exception;
31 33 7 message Ljava/lang/String;
Exception table:
from to target type
7 11 12 Class java.lang.ClassNotFoundException
7 14 15 Class java.lang.Exception
19 25 25 Class java.lang.Exception
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
basicDataSource final
}
SourceFile: "DriverFactory.java"