class org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler implements java.lang.reflect.InvocationHandler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler
super_class: java.lang.Object
{
private final java.sql.Connection target;
descriptor: Ljava/sql/Connection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.springframework.jdbc.core.JdbcTemplate this$0;
descriptor: Lorg/springframework/jdbc/core/JdbcTemplate;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.springframework.jdbc.core.JdbcTemplate, java.sql.Connection);
descriptor: (Lorg/springframework/jdbc/core/JdbcTemplate;Ljava/sql/Connection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 // org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler this
start local 2 // java.sql.Connection target
0: .line 1485
aload 0 /* this */
aload 1
putfield org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.this$0:Lorg/springframework/jdbc/core/JdbcTemplate;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 1486
aload 0 /* this */
aload 2 /* target */
putfield org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.target:Ljava/sql/Connection;
2: .line 1487
return
end local 2 // java.sql.Connection target
end local 0 // org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/jdbc/core/JdbcTemplate$CloseSuppressingInvocationHandler;
0 3 2 target Ljava/sql/Connection;
MethodParameters:
Name Flags
this$0 final
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.core.JdbcTemplate$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 1494
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 1496
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 1498
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 1500
aload 1 /* proxy */
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
5: .line 1502
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 1503
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 1504
aload 1 /* proxy */
areturn
8: .line 1507
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 1508
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 1509
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
11: .line 1512
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 1514
aconst_null
areturn
13: .line 1516
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 1517
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
15: .line 1519
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 1521
aload 0 /* this */
getfield org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.target:Ljava/sql/Connection;
areturn
17: .line 1526
StackMap locals:
StackMap stack:
aload 2 /* method */
aload 0 /* this */
getfield org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.target:Ljava/sql/Connection;
aload 3 /* args */
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 4 /* retVal */
start local 4 // java.lang.Object retVal
18: .line 1530
aload 4 /* retVal */
instanceof java.sql.Statement
ifeq 20
19: .line 1531
aload 0 /* this */
getfield org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.this$0:Lorg/springframework/jdbc/core/JdbcTemplate;
aload 4 /* retVal */
checkcast java.sql.Statement
invokevirtual org.springframework.jdbc.core.JdbcTemplate.applyStatementSettings:(Ljava/sql/Statement;)V
20: .line 1534
StackMap locals: java.lang.Object
StackMap stack:
aload 4 /* retVal */
21: areturn
end local 4 // java.lang.Object retVal
22: .line 1536
StackMap locals: org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[]
StackMap stack: java.lang.reflect.InvocationTargetException
astore 4 /* ex */
start local 4 // java.lang.reflect.InvocationTargetException ex
23: .line 1537
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.core.JdbcTemplate$CloseSuppressingInvocationHandler this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/springframework/jdbc/core/JdbcTemplate$CloseSuppressingInvocationHandler;
0 24 1 proxy Ljava/lang/Object;
0 24 2 method Ljava/lang/reflect/Method;
0 24 3 args [Ljava/lang/Object;
18 22 4 retVal Ljava/lang/Object;
23 24 4 ex Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
17 21 22 Class java.lang.reflect.InvocationTargetException
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
proxy
method
args
}
SourceFile: "JdbcTemplate.java"
NestHost: org.springframework.jdbc.core.JdbcTemplate
InnerClasses:
private CloseSuppressingInvocationHandler = org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler of org.springframework.jdbc.core.JdbcTemplate