public class org.junit.jupiter.engine.execution.InvocationInterceptorChain
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.junit.jupiter.engine.execution.InvocationInterceptorChain
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain;
public <T> T invoke(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.engine.extension.ExtensionRegistry, org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptorCall<T>);
descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/extension/ExtensionRegistry;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall;)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: aload 2
ldc Lorg/junit/jupiter/api/extension/InvocationInterceptor;
invokeinterface org.junit.jupiter.engine.extension.ExtensionRegistry.getExtensions:(Ljava/lang/Class;)Ljava/util/List;
astore 4
start local 4 1: aload 4
invokeinterface java.util.List.isEmpty:()Z
ifeq 3
2: aload 0
aload 1
invokevirtual org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;)Ljava/lang/Object;
areturn
3: StackMap locals: java.util.List
StackMap stack:
aload 0
aload 1
aload 3
aload 4
invokevirtual org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall;Ljava/util/List;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain;
0 4 1 invocation Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
0 4 2 extensionRegistry Lorg/junit/jupiter/engine/extension/ExtensionRegistry;
0 4 3 call Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall<TT;>;
1 4 4 interceptors Ljava/util/List<Lorg/junit/jupiter/api/extension/InvocationInterceptor;>;
Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/engine/extension/ExtensionRegistry;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall<TT;>;)TT;
MethodParameters:
Name Flags
invocation
extensionRegistry
call
private <T> T chainAndInvoke(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptorCall<T>, java.util.List<org.junit.jupiter.api.extension.InvocationInterceptor>);
descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall;Ljava/util/List;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation
dup
aload 1
aload 3
invokespecial org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.<init>:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Ljava/util/List;)V
astore 4
start local 4 1: aload 0
aload 4
aload 2
aload 3
invokevirtual org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainInterceptors:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall;Ljava/util/List;)Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;
astore 5
start local 5 2: aload 0
aload 5
invokevirtual org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;)Ljava/lang/Object;
astore 6
start local 6 3: aload 4
invokevirtual org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.verifyInvokedAtLeastOnce:()V
4: aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain;
0 5 1 invocation Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
0 5 2 call Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall<TT;>;
0 5 3 interceptors Ljava/util/List<Lorg/junit/jupiter/api/extension/InvocationInterceptor;>;
1 5 4 validatingInvocation Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$ValidatingInvocation<TT;>;
2 5 5 chainedInvocation Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
3 5 6 result TT;
Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall<TT;>;Ljava/util/List<Lorg/junit/jupiter/api/extension/InvocationInterceptor;>;)TT;
MethodParameters:
Name Flags
invocation
call
interceptors
private <T> org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T> chainInterceptors(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptorCall<T>, java.util.List<org.junit.jupiter.api.extension.InvocationInterceptor>);
descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall;Ljava/util/List;)Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
astore 4
start local 4 1: aload 3
aload 3
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
astore 5
start local 5 2: goto 5
3: StackMap locals: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation java.util.ListIterator
StackMap stack:
aload 5
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
checkcast org.junit.jupiter.api.extension.InvocationInterceptor
astore 6
start local 6 4: new org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation
dup
aload 4
aload 2
aload 6
invokespecial org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.<init>:(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall;Lorg/junit/jupiter/api/extension/InvocationInterceptor;)V
astore 4
end local 6 5: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.ListIterator.hasPrevious:()Z
ifne 3
6: aload 4
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain;
0 7 1 invocation Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
0 7 2 call Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall<TT;>;
0 7 3 interceptors Ljava/util/List<Lorg/junit/jupiter/api/extension/InvocationInterceptor;>;
1 7 4 result Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
2 7 5 iterator Ljava/util/ListIterator<Lorg/junit/jupiter/api/extension/InvocationInterceptor;>;
4 5 6 interceptor Lorg/junit/jupiter/api/extension/InvocationInterceptor;
Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain$InterceptorCall<TT;>;Ljava/util/List<Lorg/junit/jupiter/api/extension/InvocationInterceptor;>;)Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
MethodParameters:
Name Flags
invocation
call
interceptors
private <T> T proceed(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>);
descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.junit.jupiter.api.extension.InvocationInterceptor$Invocation.proceed:()Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 3: aload 2
invokestatic org.junit.platform.commons.util.ExceptionUtils.throwAsUncheckedException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/junit/jupiter/engine/execution/InvocationInterceptorChain;
0 4 1 invocation Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
3 4 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: <T:Ljava/lang/Object;>(Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;)TT;
MethodParameters:
Name Flags
invocation
}
SourceFile: "InvocationInterceptorChain.java"
NestMembers:
org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptorCall org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation org.junit.jupiter.engine.execution.InvocationInterceptorChain$VoidInterceptorCall
InnerClasses:
public final Status = org.apiguardian.api.API$Status of org.apiguardian.api.API
public abstract Invocation = org.junit.jupiter.api.extension.InvocationInterceptor$Invocation of org.junit.jupiter.api.extension.InvocationInterceptor
private InterceptedInvocation = org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation of org.junit.jupiter.engine.execution.InvocationInterceptorChain
public abstract InterceptorCall = org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptorCall of org.junit.jupiter.engine.execution.InvocationInterceptorChain
private ValidatingInvocation = org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation of org.junit.jupiter.engine.execution.InvocationInterceptorChain
public abstract VoidInterceptorCall = org.junit.jupiter.engine.execution.InvocationInterceptorChain$VoidInterceptorCall of org.junit.jupiter.engine.execution.InvocationInterceptorChain
RuntimeVisibleAnnotations:
org.apiguardian.api.API(status = org.apiguardian.api.API$Status.INTERNAL:Lorg/apiguardian/api/API$Status;, since = "5.5")