class org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler implements java.lang.reflect.InvocationHandler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler
super_class: java.lang.Object
{
private final javax.persistence.Query target;
descriptor: Ljavax/persistence/Query;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.persistence.EntityManager entityManager;
descriptor: Ljavax/persistence/EntityManager;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.util.Map<java.lang.Object, java.lang.Object> outputParameters;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>(javax.persistence.Query, javax.persistence.EntityManager);
descriptor: (Ljavax/persistence/Query;Ljavax/persistence/EntityManager;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler this
start local 1 // javax.persistence.Query target
start local 2 // javax.persistence.EntityManager entityManager
0: .line 359
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 360
aload 0 /* this */
aload 1 /* target */
putfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
2: .line 361
aload 0 /* this */
aload 2 /* entityManager */
putfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.entityManager:Ljavax/persistence/EntityManager;
3: .line 362
return
end local 2 // javax.persistence.EntityManager entityManager
end local 1 // javax.persistence.Query target
end local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/orm/jpa/SharedEntityManagerCreator$DeferredQueryInvocationHandler;
0 4 1 target Ljavax/persistence/Query;
0 4 2 entityManager Ljavax/persistence/EntityManager;
MethodParameters:
Name Flags
target
entityManager
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=5, locals=11, args_size=4
start local 0 // org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler 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 368
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 370
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 372
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 374
aload 0 /* this */
invokevirtual java.lang.Object.hashCode:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
areturn
5: .line 376
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 11
6: .line 378
aload 3 /* args */
iconst_0
aaload
checkcast java.lang.Class
astore 4 /* targetClass */
start local 4 // java.lang.Class targetClass
7: .line 379
aload 4 /* targetClass */
ifnonnull 9
8: .line 380
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
areturn
9: .line 382
StackMap locals: java.lang.Class
StackMap stack:
aload 4 /* targetClass */
aload 1 /* proxy */
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 20
10: .line 383
aload 1 /* proxy */
areturn
end local 4 // java.lang.Class targetClass
11: .line 386
StackMap locals:
StackMap stack:
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "getOutputParameterValue"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
12: .line 387
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.entityManager:Ljavax/persistence/EntityManager;
ifnonnull 20
13: .line 388
aload 3 /* args */
iconst_0
aaload
astore 4 /* key */
start local 4 // java.lang.Object key
14: .line 389
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
ifnull 15
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
aload 4 /* key */
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 16
15: .line 390
StackMap locals: java.lang.Object
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "OUT/INOUT parameter not available: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4 /* key */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: .line 392
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
aload 4 /* key */
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5 /* value */
start local 5 // java.lang.Object value
17: .line 393
aload 5 /* value */
instanceof java.lang.IllegalArgumentException
ifeq 19
18: .line 394
aload 5 /* value */
checkcast java.lang.IllegalArgumentException
athrow
19: .line 396
StackMap locals: java.lang.Object
StackMap stack:
aload 5 /* value */
areturn
end local 5 // java.lang.Object value
end local 4 // java.lang.Object key
20: .line 402
StackMap locals:
StackMap stack:
aload 2 /* method */
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
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
21: .line 403
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "registerStoredProcedureParameter"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
aload 3 /* args */
arraylength
iconst_3
if_icmpne 26
22: .line 404
aload 3 /* args */
iconst_2
aaload
getstatic javax.persistence.ParameterMode.OUT:Ljavax/persistence/ParameterMode;
if_acmpeq 23
aload 3 /* args */
iconst_2
aaload
getstatic javax.persistence.ParameterMode.INOUT:Ljavax/persistence/ParameterMode;
if_acmpne 26
23: .line 405
StackMap locals: java.lang.Object
StackMap stack:
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
ifnonnull 25
24: .line 406
aload 0 /* this */
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
25: .line 408
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
aload 3 /* args */
iconst_0
aaload
aconst_null
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
26: .line 410
StackMap locals:
StackMap stack:
aload 4 /* retVal */
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
if_acmpne 27
aload 1 /* proxy */
goto 28
StackMap locals:
StackMap stack:
27: aload 4 /* retVal */
StackMap locals:
StackMap stack: java.lang.Object
28: astore 6
29: .line 416
getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 45
30: .line 419
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
ifnull 43
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
instanceof javax.persistence.StoredProcedureQuery
ifeq 43
31: .line 420
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
checkcast javax.persistence.StoredProcedureQuery
astore 7 /* storedProc */
start local 7 // javax.persistence.StoredProcedureQuery storedProc
32: .line 421
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 42
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] java.lang.Object top java.lang.Object javax.persistence.StoredProcedureQuery top java.util.Iterator
StackMap stack:
33: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8 /* entry */
start local 8 // java.util.Map$Entry entry
34: .line 423
aload 8 /* entry */
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
astore 10 /* key */
start local 10 // java.lang.Object key
35: .line 424
aload 10 /* key */
instanceof java.lang.Integer
ifeq 38
36: .line 425
aload 8 /* entry */
aload 7 /* storedProc */
aload 10 /* key */
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokeinterface javax.persistence.StoredProcedureQuery.getOutputParameterValue:(I)Ljava/lang/Object;
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
37: .line 426
goto 42
38: .line 428
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] java.lang.Object top java.lang.Object javax.persistence.StoredProcedureQuery java.util.Map$Entry java.util.Iterator java.lang.Object
StackMap stack:
aload 8 /* entry */
aload 7 /* storedProc */
aload 10 /* key */
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokeinterface javax.persistence.StoredProcedureQuery.getOutputParameterValue:(Ljava/lang/String;)Ljava/lang/Object;
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 // java.lang.Object key
39: .line 430
goto 42
40: .line 431
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] java.lang.Object top java.lang.Object javax.persistence.StoredProcedureQuery java.util.Map$Entry java.util.Iterator
StackMap stack: java.lang.IllegalArgumentException
astore 10 /* ex */
start local 10 // java.lang.IllegalArgumentException ex
41: .line 432
aload 8 /* entry */
aload 10 /* ex */
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 // java.lang.IllegalArgumentException ex
end local 8 // java.util.Map$Entry entry
42: .line 421
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] java.lang.Object top java.lang.Object javax.persistence.StoredProcedureQuery top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
end local 7 // javax.persistence.StoredProcedureQuery storedProc
43: .line 436
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] java.lang.Object top java.lang.Object
StackMap stack:
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.entityManager:Ljavax/persistence/EntityManager;
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
44: .line 437
aload 0 /* this */
aconst_null
putfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.entityManager:Ljavax/persistence/EntityManager;
45: .line 410
StackMap locals:
StackMap stack:
aload 6
areturn
end local 4 // java.lang.Object retVal
46: .line 412
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler 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
47: .line 413
aload 4 /* ex */
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
athrow
end local 4 // java.lang.reflect.InvocationTargetException ex
48: .line 415
StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
49: .line 416
getstatic org.springframework.orm.jpa.SharedEntityManagerCreator.queryTerminatingMethods:Ljava/util/Set;
aload 2 /* method */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 65
50: .line 419
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
ifnull 63
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
instanceof javax.persistence.StoredProcedureQuery
ifeq 63
51: .line 420
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.target:Ljavax/persistence/Query;
checkcast javax.persistence.StoredProcedureQuery
astore 7 /* storedProc */
start local 7 // javax.persistence.StoredProcedureQuery storedProc
52: .line 421
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.outputParameters:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 62
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] top java.lang.Throwable top javax.persistence.StoredProcedureQuery top java.util.Iterator
StackMap stack:
53: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8 /* entry */
start local 8 // java.util.Map$Entry entry
54: .line 423
aload 8 /* entry */
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
astore 10 /* key */
start local 10 // java.lang.Object key
55: .line 424
aload 10 /* key */
instanceof java.lang.Integer
ifeq 58
56: .line 425
aload 8 /* entry */
aload 7 /* storedProc */
aload 10 /* key */
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokeinterface javax.persistence.StoredProcedureQuery.getOutputParameterValue:(I)Ljava/lang/Object;
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
57: .line 426
goto 62
58: .line 428
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] top java.lang.Throwable top javax.persistence.StoredProcedureQuery java.util.Map$Entry java.util.Iterator java.lang.Object
StackMap stack:
aload 8 /* entry */
aload 7 /* storedProc */
aload 10 /* key */
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokeinterface javax.persistence.StoredProcedureQuery.getOutputParameterValue:(Ljava/lang/String;)Ljava/lang/Object;
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 // java.lang.Object key
59: .line 430
goto 62
60: .line 431
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] top java.lang.Throwable top javax.persistence.StoredProcedureQuery java.util.Map$Entry java.util.Iterator
StackMap stack: java.lang.IllegalArgumentException
astore 10 /* ex */
start local 10 // java.lang.IllegalArgumentException ex
61: .line 432
aload 8 /* entry */
aload 10 /* ex */
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 // java.lang.IllegalArgumentException ex
end local 8 // java.util.Map$Entry entry
62: .line 421
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] top java.lang.Throwable top javax.persistence.StoredProcedureQuery top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 53
end local 7 // javax.persistence.StoredProcedureQuery storedProc
63: .line 436
StackMap locals: org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler java.lang.Object java.lang.reflect.Method java.lang.Object[] top java.lang.Throwable
StackMap stack:
aload 0 /* this */
getfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.entityManager:Ljavax/persistence/EntityManager;
invokestatic org.springframework.orm.jpa.EntityManagerFactoryUtils.closeEntityManager:(Ljavax/persistence/EntityManager;)V
64: .line 437
aload 0 /* this */
aconst_null
putfield org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.entityManager:Ljavax/persistence/EntityManager;
65: .line 439
StackMap locals:
StackMap stack:
aload 5
athrow
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.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler this
LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Lorg/springframework/orm/jpa/SharedEntityManagerCreator$DeferredQueryInvocationHandler;
0 66 1 proxy Ljava/lang/Object;
0 66 2 method Ljava/lang/reflect/Method;
0 66 3 args [Ljava/lang/Object;
7 11 4 targetClass Ljava/lang/Class<*>;
14 20 4 key Ljava/lang/Object;
17 20 5 value Ljava/lang/Object;
21 46 4 retVal Ljava/lang/Object;
47 48 4 ex Ljava/lang/reflect/InvocationTargetException;
32 43 7 storedProc Ljavax/persistence/StoredProcedureQuery;
52 63 7 storedProc Ljavax/persistence/StoredProcedureQuery;
34 42 8 entry Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
54 62 8 entry Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
35 39 10 key Ljava/lang/Object;
55 59 10 key Ljava/lang/Object;
41 42 10 ex Ljava/lang/IllegalArgumentException;
61 62 10 ex Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
34 39 40 Class java.lang.IllegalArgumentException
20 29 46 Class java.lang.reflect.InvocationTargetException
20 29 48 any
46 48 48 any
54 59 60 Class java.lang.IllegalArgumentException
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
proxy
method
args
}
SourceFile: "SharedEntityManagerCreator.java"
NestHost: org.springframework.orm.jpa.SharedEntityManagerCreator
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
private DeferredQueryInvocationHandler = org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler of org.springframework.orm.jpa.SharedEntityManagerCreator