public class org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler implements java.lang.reflect.InvocationHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler
super_class: java.lang.Object
{
private final javax.sql.DataSource ds;
descriptor: Ljavax/sql/DataSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String username;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String password;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.reflect.Method getConnection;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(javax.sql.DataSource, java.lang.String, java.lang.String);
descriptor: (Ljavax/sql/DataSource;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.ds:Ljavax/sql/DataSource;
2: aload 0
aload 2
putfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.username:Ljava/lang/String;
3: aload 0
aload 3
putfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.password:Ljava/lang/String;
4: aload 0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "getConnection"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
dup
iconst_1
ldc Ljava/lang/String;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.getConnection:Ljava/lang/reflect/Method;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/naming/factory/DataSourceLinkFactory$DataSourceHandler;
0 6 1 ds Ljavax/sql/DataSource;
0 6 2 username Ljava/lang/String;
0 6 3 password Ljava/lang/String;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ds
username
password
public java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]);
descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "getConnection"
aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
aload 3
ifnull 1
aload 3
arraylength
ifne 4
1: StackMap locals:
StackMap stack:
iconst_2
anewarray java.lang.String
dup
iconst_0
aload 0
getfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.username:Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.password:Ljava/lang/String;
aastore
astore 3
2: aload 0
getfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.getConnection:Ljava/lang/reflect/Method;
astore 2
3: goto 6
StackMap locals:
StackMap stack:
4: ldc "unwrap"
aload 2
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: aload 0
aload 3
iconst_0
aaload
checkcast java.lang.Class
invokevirtual org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.unwrap:(Ljava/lang/Class;)Ljava/lang/Object;
areturn
6: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.ds:Ljavax/sql/DataSource;
aload 3
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
7: areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 9: aload 4
instanceof java.lang.reflect.InvocationTargetException
ifeq 12
10: aload 4
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
ifnull 12
11: aload 4
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
athrow
12: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/naming/factory/DataSourceLinkFactory$DataSourceHandler;
0 13 1 proxy Ljava/lang/Object;
0 13 2 method Ljava/lang/reflect/Method;
0 13 3 args [Ljava/lang/Object;
9 13 4 t Ljava/lang/Throwable;
Exception table:
from to target type
6 7 8 Class java.lang.Throwable
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
proxy
method
args
public unwrap(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Ljavax/sql/DataSource;
if_acmpne 2
1: aload 0
getfield org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler.ds:Ljavax/sql/DataSource;
areturn
2: StackMap locals:
StackMap stack:
new java.sql.SQLException
dup
getstatic org.apache.naming.factory.DataSourceLinkFactory.sm:Lorg/apache/naming/StringManager;
ldc "dataSourceLinkFactory.badWrapper"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/naming/factory/DataSourceLinkFactory$DataSourceHandler;
0 3 1 iface Ljava/lang/Class<*>;
Exceptions:
throws java.sql.SQLException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
MethodParameters:
Name Flags
iface
}
SourceFile: "DataSourceLinkFactory.java"
NestHost: org.apache.naming.factory.DataSourceLinkFactory
InnerClasses:
public DataSourceHandler = org.apache.naming.factory.DataSourceLinkFactory$DataSourceHandler of org.apache.naming.factory.DataSourceLinkFactory