class org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler implements java.lang.reflect.InvocationHandler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler
super_class: java.lang.Object
{
private final java.sql.Connection target;
descriptor: Ljava/sql/Connection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.sql.Connection);
descriptor: (Ljava/sql/Connection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler this
start local 1 // java.sql.Connection target
0: .line 293
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 294
aload 0 /* this */
aload 1 /* target */
putfield org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler.target:Ljava/sql/Connection;
2: .line 295
return
end local 1 // java.sql.Connection target
end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/jdbc/datasource/SingleConnectionDataSource$CloseSuppressingInvocationHandler;
0 3 1 target Ljava/sql/Connection;
MethodParameters:
Name Flags
target
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=3, locals=5, args_size=4
start local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler this
start local 1 // java.lang.Object proxy
start local 2 // java.lang.reflect.Method method
start local 3 // java.lang.Object[] args
0: .line 302
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "equals"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
1: .line 304
aload 1 /* proxy */
aload 3 /* args */
iconst_0
aaload
if_acmpne 2
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
StackMap locals:
StackMap stack:
2: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
3: .line 306
StackMap locals:
StackMap stack:
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "hashCode"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: .line 308
aload 1 /* proxy */
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
5: .line 310
StackMap locals:
StackMap stack:
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "unwrap"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: .line 311
aload 3 /* args */
iconst_0
aaload
checkcast java.lang.Class
aload 1 /* proxy */
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 17
7: .line 312
aload 1 /* proxy */
areturn
8: .line 315
StackMap locals:
StackMap stack:
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "isWrapperFor"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
9: .line 316
aload 3 /* args */
iconst_0
aaload
checkcast java.lang.Class
aload 1 /* proxy */
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 17
10: .line 317
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
11: .line 320
StackMap locals:
StackMap stack:
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "close"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: .line 322
aconst_null
areturn
13: .line 324
StackMap locals:
StackMap stack:
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "isClosed"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
14: .line 325
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
15: .line 327
StackMap locals:
StackMap stack:
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "getTargetConnection"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
16: .line 329
aload 0 /* this */
getfield org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler.target:Ljava/sql/Connection;
areturn
17: .line 334
StackMap locals:
StackMap stack:
aload 2 /* method */
aload 0 /* this */
getfield org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler.target:Ljava/sql/Connection;
aload 3 /* args */
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
18: areturn
19: .line 336
StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 4 /* ex */
start local 4 // java.lang.reflect.InvocationTargetException ex
20: .line 337
aload 4 /* ex */
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
athrow
end local 4 // java.lang.reflect.InvocationTargetException ex
end local 3 // java.lang.Object[] args
end local 2 // java.lang.reflect.Method method
end local 1 // java.lang.Object proxy
end local 0 // org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/springframework/jdbc/datasource/SingleConnectionDataSource$CloseSuppressingInvocationHandler;
0 21 1 proxy Ljava/lang/Object;
0 21 2 method Ljava/lang/reflect/Method;
0 21 3 args [Ljava/lang/Object;
20 21 4 ex Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
17 18 19 Class java.lang.reflect.InvocationTargetException
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
proxy
method
args
}
SourceFile: "SingleConnectionDataSource.java"
NestHost: org.springframework.jdbc.datasource.SingleConnectionDataSource
InnerClasses:
private CloseSuppressingInvocationHandler = org.springframework.jdbc.datasource.SingleConnectionDataSource$CloseSuppressingInvocationHandler of org.springframework.jdbc.datasource.SingleConnectionDataSource