class org.junit.jupiter.engine.extension.TimeoutInvocation<T> implements org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.junit.jupiter.engine.extension.TimeoutInvocation
super_class: java.lang.Object
{
private final org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T> delegate;
descriptor: Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
private final org.junit.jupiter.engine.extension.TimeoutDuration timeout;
descriptor: Lorg/junit/jupiter/engine/extension/TimeoutDuration;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ScheduledExecutorService executor;
descriptor: Ljava/util/concurrent/ScheduledExecutorService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.function.Supplier<java.lang.String> descriptionSupplier;
descriptor: Ljava/util/function/Supplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Supplier<Ljava/lang/String;>;
void <init>(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation<T>, org.junit.jupiter.engine.extension.TimeoutDuration, java.util.concurrent.ScheduledExecutorService, java.util.function.Supplier<java.lang.String>);
descriptor: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;Lorg/junit/jupiter/engine/extension/TimeoutDuration;Ljava/util/concurrent/ScheduledExecutorService;Ljava/util/function/Supplier;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.junit.jupiter.engine.extension.TimeoutInvocation.delegate:Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;
2: aload 0
aload 2
putfield org.junit.jupiter.engine.extension.TimeoutInvocation.timeout:Lorg/junit/jupiter/engine/extension/TimeoutDuration;
3: aload 0
aload 3
putfield org.junit.jupiter.engine.extension.TimeoutInvocation.executor:Ljava/util/concurrent/ScheduledExecutorService;
4: aload 0
aload 4
putfield org.junit.jupiter.engine.extension.TimeoutInvocation.descriptionSupplier:Ljava/util/function/Supplier;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/junit/jupiter/engine/extension/TimeoutInvocation<TT;>;
0 6 1 delegate Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
0 6 2 timeout Lorg/junit/jupiter/engine/extension/TimeoutDuration;
0 6 3 executor Ljava/util/concurrent/ScheduledExecutorService;
0 6 4 descriptionSupplier Ljava/util/function/Supplier<Ljava/lang/String;>;
Signature: (Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;Lorg/junit/jupiter/engine/extension/TimeoutDuration;Ljava/util/concurrent/ScheduledExecutorService;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
delegate
timeout
executor
descriptionSupplier
public T proceed();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: new org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask
dup
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokespecial org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask.<init>:(Ljava/lang/Thread;)V
astore 1
start local 1 1: aload 0
getfield org.junit.jupiter.engine.extension.TimeoutInvocation.executor:Ljava/util/concurrent/ScheduledExecutorService;
aload 1
aload 0
getfield org.junit.jupiter.engine.extension.TimeoutInvocation.timeout:Lorg/junit/jupiter/engine/extension/TimeoutDuration;
invokevirtual org.junit.jupiter.engine.extension.TimeoutDuration.getValue:()J
aload 0
getfield org.junit.jupiter.engine.extension.TimeoutInvocation.timeout:Lorg/junit/jupiter/engine/extension/TimeoutDuration;
invokevirtual org.junit.jupiter.engine.extension.TimeoutDuration.getUnit:()Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.ScheduledExecutorService.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 0
getfield org.junit.jupiter.engine.extension.TimeoutInvocation.delegate:Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation;
invokeinterface org.junit.jupiter.api.extension.InvocationInterceptor$Invocation.proceed:()Ljava/lang/Object;
astore 4
5: goto 24
6: StackMap locals: org.junit.jupiter.engine.extension.TimeoutInvocation org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask java.util.concurrent.ScheduledFuture java.lang.Throwable java.lang.Object
StackMap stack: java.lang.Throwable
astore 5
start local 5 7: aload 5
invokestatic org.junit.platform.commons.util.UnrecoverableExceptions.rethrowIfUnrecoverable:(Ljava/lang/Throwable;)V
8: aload 5
astore 3
end local 5 9: aload 2
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
istore 7
start local 7 10: iload 7
ifne 12
11: aload 2
invokeinterface java.util.concurrent.ScheduledFuture.get:()Ljava/lang/Object;
pop
12: StackMap locals: org.junit.jupiter.engine.extension.TimeoutInvocation org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask java.util.concurrent.ScheduledFuture java.lang.Throwable java.lang.Object top top int
StackMap stack:
aload 1
getfield org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask.executed:Z
ifeq 30
13: invokestatic java.lang.Thread.interrupted:()Z
pop
14: aload 0
aload 3
invokevirtual org.junit.jupiter.engine.extension.TimeoutInvocation.createTimeoutException:(Ljava/lang/Throwable;)Ljava/util/concurrent/TimeoutException;
astore 3
end local 7 15: goto 30
16: StackMap locals: org.junit.jupiter.engine.extension.TimeoutInvocation org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask java.util.concurrent.ScheduledFuture java.lang.Throwable java.lang.Object
StackMap stack: java.lang.Throwable
astore 6
17: aload 2
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
istore 7
start local 7 18: iload 7
ifne 20
19: aload 2
invokeinterface java.util.concurrent.ScheduledFuture.get:()Ljava/lang/Object;
pop
20: StackMap locals: org.junit.jupiter.engine.extension.TimeoutInvocation org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask java.util.concurrent.ScheduledFuture java.lang.Throwable java.lang.Object top java.lang.Throwable int
StackMap stack:
aload 1
getfield org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask.executed:Z
ifeq 23
21: invokestatic java.lang.Thread.interrupted:()Z
pop
22: aload 0
aload 3
invokevirtual org.junit.jupiter.engine.extension.TimeoutInvocation.createTimeoutException:(Ljava/lang/Throwable;)Ljava/util/concurrent/TimeoutException;
astore 3
end local 7 23: StackMap locals:
StackMap stack:
aload 6
athrow
24: StackMap locals: org.junit.jupiter.engine.extension.TimeoutInvocation org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask java.util.concurrent.ScheduledFuture java.lang.Throwable java.lang.Object
StackMap stack:
aload 2
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
istore 7
start local 7 25: iload 7
ifne 27
26: aload 2
invokeinterface java.util.concurrent.ScheduledFuture.get:()Ljava/lang/Object;
pop
27: StackMap locals: org.junit.jupiter.engine.extension.TimeoutInvocation org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask java.util.concurrent.ScheduledFuture java.lang.Throwable java.lang.Object top top int
StackMap stack:
aload 1
getfield org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask.executed:Z
ifeq 30
28: invokestatic java.lang.Thread.interrupted:()Z
pop
29: aload 0
aload 3
invokevirtual org.junit.jupiter.engine.extension.TimeoutInvocation.createTimeoutException:(Ljava/lang/Throwable;)Ljava/util/concurrent/TimeoutException;
astore 3
end local 7 30: StackMap locals: org.junit.jupiter.engine.extension.TimeoutInvocation org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask java.util.concurrent.ScheduledFuture java.lang.Throwable java.lang.Object
StackMap stack:
aload 3
ifnull 32
31: aload 3
athrow
32: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/junit/jupiter/engine/extension/TimeoutInvocation<TT;>;
1 33 1 interruptTask Lorg/junit/jupiter/engine/extension/TimeoutInvocation$InterruptTask;
2 33 2 future Ljava/util/concurrent/ScheduledFuture<*>;
3 33 3 failure Ljava/lang/Throwable;
4 33 4 result TT;
7 9 5 t Ljava/lang/Throwable;
10 15 7 cancelled Z
18 23 7 cancelled Z
25 30 7 cancelled Z
Exception table:
from to target type
4 5 6 Class java.lang.Throwable
4 9 16 any
Exceptions:
throws java.lang.Throwable
Signature: ()TT;
private java.util.concurrent.TimeoutException createTimeoutException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/util/concurrent/TimeoutException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: ldc "%s timed out after %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.junit.jupiter.engine.extension.TimeoutInvocation.descriptionSupplier:Ljava/util/function/Supplier;
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
aastore
dup
iconst_1
aload 0
getfield org.junit.jupiter.engine.extension.TimeoutInvocation.timeout:Lorg/junit/jupiter/engine/extension/TimeoutDuration;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 1: new java.util.concurrent.TimeoutException
dup
aload 2
invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 2: aload 1
ifnull 4
3: aload 3
aload 1
invokevirtual java.util.concurrent.TimeoutException.addSuppressed:(Ljava/lang/Throwable;)V
4: StackMap locals: java.lang.String java.util.concurrent.TimeoutException
StackMap stack:
aload 3
areturn
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/extension/TimeoutInvocation<TT;>;
0 5 1 failure Ljava/lang/Throwable;
1 5 2 message Ljava/lang/String;
2 5 3 timeoutError Ljava/util/concurrent/TimeoutException;
MethodParameters:
Name Flags
failure
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/junit/jupiter/api/extension/InvocationInterceptor$Invocation<TT;>;
SourceFile: "TimeoutInvocation.java"
NestMembers:
org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask
InnerClasses:
public abstract Invocation = org.junit.jupiter.api.extension.InvocationInterceptor$Invocation of org.junit.jupiter.api.extension.InvocationInterceptor
InterruptTask = org.junit.jupiter.engine.extension.TimeoutInvocation$InterruptTask of org.junit.jupiter.engine.extension.TimeoutInvocation