class org.junit.jupiter.engine.extension.TimeoutExtension extends java.lang.Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.InvocationInterceptor
{
private static final org.junit.jupiter.api.extension.ExtensionContext$Namespace NAMESPACE;
private static final java.lang.String TESTABLE_METHOD_TIMEOUT_KEY;
private static final java.lang.String TESTABLE_METHOD_TIMEOUT_THREAD_MODE_KEY;
private static final java.lang.String GLOBAL_TIMEOUT_CONFIG_KEY;
private static final java.lang.String ENABLED_MODE_VALUE;
private static final java.lang.String DISABLED_MODE_VALUE;
private static final java.lang.String DISABLED_ON_DEBUG_MODE_VALUE;
void <init>()
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionContext v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: void readAndStoreTimeoutSoChildrenInheritIt(org.junit.jupiter.api.extension.ExtensionContext)>(v);
return;
}
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionContext v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: void readAndStoreTimeoutSoChildrenInheritIt(org.junit.jupiter.api.extension.ExtensionContext)>(v);
return;
}
private void readAndStoreTimeoutSoChildrenInheritIt(org.junit.jupiter.api.extension.ExtensionContext)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionContext v;
java.util.function.Consumer v, v;
java.util.Optional v, v, v, v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: java.util.Optional getElement()>();
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.util.Optional readTimeoutFromAnnotation(java.util.Optional)>(v);
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$lambda_readAndStoreTimeoutSoChildrenInheritIt_0__308: java.util.function.Consumer bootstrap$(org.junit.jupiter.api.extension.ExtensionContext)>(v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: java.util.Optional getElement()>();
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.util.Optional readTimeoutThreadModeFromAnnotation(java.util.Optional)>(v);
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$lambda_readAndStoreTimeoutSoChildrenInheritIt_1__309: java.util.function.Consumer bootstrap$(org.junit.jupiter.api.extension.ExtensionContext)>(v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
}
public void interceptBeforeAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$getDefaultBeforeAllMethodTimeout__310: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider bootstrap$()>();
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: void interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v);
return;
}
public void interceptBeforeEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$getDefaultBeforeEachMethodTimeout__311: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider bootstrap$()>();
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: void interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v);
return;
}
public void interceptTestMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$getDefaultTestMethodTimeout__312: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider bootstrap$()>();
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.lang.Object interceptTestableMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v);
return;
}
public void interceptTestTemplateMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$getDefaultTestTemplateMethodTimeout__313: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider bootstrap$()>();
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.lang.Object interceptTestableMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v);
return;
}
public java.lang.Object interceptTestFactoryMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
java.lang.Object v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$getDefaultTestFactoryMethodTimeout__314: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider bootstrap$()>();
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.lang.Object interceptTestableMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v);
return v;
}
public void interceptAfterEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$getDefaultAfterEachMethodTimeout__315: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider bootstrap$()>();
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: void interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v);
return;
}
public void interceptAfterAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$getDefaultAfterAllMethodTimeout__316: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider bootstrap$()>();
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: void interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v);
return;
}
private void interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider) throws java.lang.Throwable
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
java.lang.reflect.Executable v;
java.util.Optional v, v;
java.lang.Object v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v := @parameter: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ReflectiveInvocationContext: java.lang.reflect.Executable getExecutable()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.util.Optional readTimeoutFromAnnotation(java.util.Optional)>(v);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.lang.Object intercept(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutDuration,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v, v);
return;
}
private java.util.Optional readTimeoutFromAnnotation(java.util.Optional)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
java.util.Optional v, v, v;
java.util.function.Function v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: java.util.Optional;
v = staticinvoke <org.junit.platform.commons.support.AnnotationSupport: java.util.Optional findAnnotation(java.util.Optional,java.lang.Class)>(v, class "Lorg/junit/jupiter/api/Timeout;");
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$from__317: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
return v;
}
private java.util.Optional readTimeoutThreadModeFromAnnotation(java.util.Optional)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
java.util.Optional v, v, v;
java.util.function.Function v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: java.util.Optional;
v = staticinvoke <org.junit.platform.commons.support.AnnotationSupport: java.util.Optional findAnnotation(java.util.Optional,java.lang.Class)>(v, class "Lorg/junit/jupiter/api/Timeout;");
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$threadMode__318: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
return v;
}
private java.lang.Object interceptTestableMethod(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider) throws java.lang.Throwable
{
org.junit.jupiter.api.extension.ExtensionContext$Namespace v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.api.extension.ExtensionContext$Store v;
java.lang.Object v, v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v := @parameter: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider;
v = <org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.extension.ExtensionContext$Namespace NAMESPACE>;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: org.junit.jupiter.api.extension.ExtensionContext$Store getStore(org.junit.jupiter.api.extension.ExtensionContext$Namespace)>(v);
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext$Store: java.lang.Object get(java.lang.Object,java.lang.Class)>("testable_method_timeout_from_annotation", class "Lorg/junit/jupiter/engine/extension/TimeoutDuration;");
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: java.lang.Object intercept(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutDuration,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v, v, v, v);
return v;
}
private java.lang.Object intercept(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutDuration, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider) throws java.lang.Throwable
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.engine.extension.TimeoutDuration v, v;
org.junit.jupiter.api.extension.ExtensionContext v;
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
java.lang.Object v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v, v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v := @parameter: org.junit.jupiter.engine.extension.TimeoutDuration;
v := @parameter: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider;
if v != null goto label;
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.engine.extension.TimeoutDuration getDefaultTimeout(org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)>(v, v);
goto label;
label:
v = v;
label:
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation decorate(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext,org.junit.jupiter.engine.extension.TimeoutDuration)>(v, v, v, v);
v = interfaceinvoke v.<org.junit.jupiter.api.extension.InvocationInterceptor$Invocation: java.lang.Object proceed()>();
return v;
}
private org.junit.jupiter.engine.extension.TimeoutDuration getDefaultTimeout(org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider v;
org.junit.jupiter.engine.extension.TimeoutConfiguration v;
java.lang.Object v, v;
org.junit.jupiter.api.extension.ExtensionContext v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v := @parameter: org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider;
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.engine.extension.TimeoutConfiguration getGlobalTimeoutConfiguration(org.junit.jupiter.api.extension.ExtensionContext)>(v);
v = interfaceinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension$TimeoutProvider: java.lang.Object apply(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
return v;
}
private org.junit.jupiter.engine.extension.TimeoutConfiguration getGlobalTimeoutConfiguration(org.junit.jupiter.api.extension.ExtensionContext)
{
org.junit.jupiter.api.extension.ExtensionContext$Namespace v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionContext$Store v;
java.lang.Object v;
org.junit.jupiter.api.extension.ExtensionContext v, v;
java.util.function.Function v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: org.junit.jupiter.api.extension.ExtensionContext getRoot()>();
v = <org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.extension.ExtensionContext$Namespace NAMESPACE>;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: org.junit.jupiter.api.extension.ExtensionContext$Store getStore(org.junit.jupiter.api.extension.ExtensionContext$Namespace)>(v);
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$lambda_getGlobalTimeoutConfiguration_2__319: java.util.function.Function bootstrap$(org.junit.jupiter.api.extension.ExtensionContext)>(v);
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext$Store: java.lang.Object getOrComputeIfAbsent(java.lang.Object,java.util.function.Function,java.lang.Class)>("global_timeout_config", v, class "Lorg/junit/jupiter/engine/extension/TimeoutConfiguration;");
return v;
}
private org.junit.jupiter.api.extension.InvocationInterceptor$Invocation decorate(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext, org.junit.jupiter.engine.extension.TimeoutDuration)
{
org.junit.jupiter.api.extension.ExtensionContext$Namespace v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.engine.extension.TimeoutDuration v;
org.junit.jupiter.api.extension.ExtensionContext v, v;
java.util.function.Supplier v;
org.junit.jupiter.engine.extension.TimeoutInvocationFactory$TimeoutInvocationParameters v;
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
org.junit.jupiter.api.extension.ExtensionContext$Store v;
org.junit.jupiter.api.Timeout$ThreadMode v;
org.junit.jupiter.engine.extension.TimeoutInvocationFactory v;
boolean v;
org.junit.jupiter.api.extension.InvocationInterceptor$Invocation v, v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v := @parameter: org.junit.jupiter.engine.extension.TimeoutDuration;
if v == null goto label;
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: boolean isTimeoutDisabled(org.junit.jupiter.api.extension.ExtensionContext)>(v);
if v == 0 goto label;
label:
return v;
label:
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.Timeout$ThreadMode resolveTimeoutThreadMode(org.junit.jupiter.api.extension.ExtensionContext)>(v);
v = new org.junit.jupiter.engine.extension.TimeoutInvocationFactory;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: org.junit.jupiter.api.extension.ExtensionContext getRoot()>();
v = <org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.extension.ExtensionContext$Namespace NAMESPACE>;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: org.junit.jupiter.api.extension.ExtensionContext$Store getStore(org.junit.jupiter.api.extension.ExtensionContext$Namespace)>(v);
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutInvocationFactory: void <init>(org.junit.jupiter.api.extension.ExtensionContext$Store)>(v);
v = new org.junit.jupiter.engine.extension.TimeoutInvocationFactory$TimeoutInvocationParameters;
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$lambda_decorate_3__320: java.util.function.Supplier bootstrap$(org.junit.jupiter.engine.extension.TimeoutExtension,org.junit.jupiter.api.extension.ReflectiveInvocationContext,org.junit.jupiter.api.extension.ExtensionContext)>(v, v, v);
specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutInvocationFactory$TimeoutInvocationParameters: void <init>(org.junit.jupiter.api.extension.InvocationInterceptor$Invocation,org.junit.jupiter.engine.extension.TimeoutDuration,java.util.function.Supplier)>(v, v, v);
v = virtualinvoke v.<org.junit.jupiter.engine.extension.TimeoutInvocationFactory: org.junit.jupiter.api.extension.InvocationInterceptor$Invocation create(org.junit.jupiter.api.Timeout$ThreadMode,org.junit.jupiter.engine.extension.TimeoutInvocationFactory$TimeoutInvocationParameters)>(v, v);
return v;
}
private org.junit.jupiter.api.Timeout$ThreadMode resolveTimeoutThreadMode(org.junit.jupiter.api.extension.ExtensionContext)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionContext v;
java.util.Optional v;
org.junit.jupiter.engine.extension.TimeoutConfiguration v;
java.lang.Object v;
org.junit.jupiter.api.Timeout$ThreadMode v, v, v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.Timeout$ThreadMode getAnnotationThreadMode(org.junit.jupiter.api.extension.ExtensionContext)>(v);
if v == null goto label;
v = <org.junit.jupiter.api.Timeout$ThreadMode: org.junit.jupiter.api.Timeout$ThreadMode INFERRED>;
if v != v goto label;
label:
v = specialinvoke v.<org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.engine.extension.TimeoutConfiguration getGlobalTimeoutConfiguration(org.junit.jupiter.api.extension.ExtensionContext)>(v);
v = virtualinvoke v.<org.junit.jupiter.engine.extension.TimeoutConfiguration: java.util.Optional getDefaultTimeoutThreadMode()>();
v = <org.junit.jupiter.api.Timeout$ThreadMode: org.junit.jupiter.api.Timeout$ThreadMode SAME_THREAD>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(v);
return v;
label:
return v;
}
private org.junit.jupiter.api.Timeout$ThreadMode getAnnotationThreadMode(org.junit.jupiter.api.extension.ExtensionContext)
{
org.junit.jupiter.api.extension.ExtensionContext$Namespace v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionContext$Store v;
java.lang.Object v;
org.junit.jupiter.api.extension.ExtensionContext v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = <org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.extension.ExtensionContext$Namespace NAMESPACE>;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: org.junit.jupiter.api.extension.ExtensionContext$Store getStore(org.junit.jupiter.api.extension.ExtensionContext$Namespace)>(v);
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext$Store: java.lang.Object get(java.lang.Object,java.lang.Class)>("testable_method_timeout_thread_mode_from_annotation", class "Lorg/junit/jupiter/api/Timeout$ThreadMode;");
return v;
}
private java.lang.String describe(org.junit.jupiter.api.extension.ReflectiveInvocationContext, org.junit.jupiter.api.extension.ExtensionContext)
{
java.lang.Object[] v;
org.junit.jupiter.api.extension.ExtensionContext v;
java.lang.reflect.Executable v;
java.lang.String v, v, v, v;
boolean v, v;
org.junit.jupiter.engine.extension.TimeoutExtension v;
java.lang.Class[] v;
org.junit.jupiter.api.extension.ReflectiveInvocationContext v;
java.util.Optional v;
java.lang.Class v, v;
java.lang.Object v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ReflectiveInvocationContext;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ReflectiveInvocationContext: java.lang.reflect.Executable getExecutable()>();
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: java.util.Optional getTestClass()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ReflectiveInvocationContext: java.lang.Class getTargetClass()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = newarray (java.lang.Object)[2];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v[0] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = staticinvoke <org.junit.platform.commons.util.ClassUtils: java.lang.String nullSafeToString(java.lang.Class[])>(v);
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%s(%s)", v);
return v;
label:
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ReflectiveInvocationContext: java.lang.Class getTargetClass()>();
v = staticinvoke <org.junit.platform.commons.util.ReflectionUtils: java.lang.String getFullyQualifiedMethodName(java.lang.Class,java.lang.reflect.Method)>(v, v);
return v;
}
private boolean isTimeoutDisabled(org.junit.jupiter.api.extension.ExtensionContext)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionContext v;
java.util.function.Function v;
java.lang.Boolean v;
java.util.Optional v, v;
java.lang.Object v;
boolean v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: org.junit.jupiter.api.extension.ExtensionContext;
v = interfaceinvoke v.<org.junit.jupiter.api.extension.ExtensionContext: java.util.Optional getConfigurationParameter(java.lang.String)>("junit.jupiter.execution.timeout.mode");
v = staticinvoke <org.junit.jupiter.engine.extension.TimeoutExtension$isTimeoutDisabled__321: java.util.function.Function bootstrap$(org.junit.jupiter.engine.extension.TimeoutExtension)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
}
public boolean isTimeoutDisabled(java.lang.String)
{
org.junit.jupiter.engine.extension.TimeoutExtension v;
org.junit.jupiter.api.extension.ExtensionConfigurationException v;
byte v;
int v;
java.lang.String v, v;
boolean v, v, v, v;
v := @this: org.junit.jupiter.engine.extension.TimeoutExtension;
v := @parameter: java.lang.String;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1609594047: goto label;
case 270940796: goto label;
case 613410390: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("enabled");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("disabled");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("disabled_on_debug");
if v == 0 goto label;
v = 2;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
return 0;
label:
return 1;
label:
v = staticinvoke <org.junit.platform.commons.util.RuntimeUtils: boolean isDebugMode()>();
return v;
label:
v = new org.junit.jupiter.api.extension.ExtensionConfigurationException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unsupported timeout mode: \u0001");
specialinvoke v.<org.junit.jupiter.api.extension.ExtensionConfigurationException: void <init>(java.lang.String)>(v);
throw v;
}
static void <clinit>()
{
org.junit.jupiter.api.extension.ExtensionContext$Namespace v;
java.lang.Object[] v;
v = newarray (java.lang.Object)[1];
v[0] = class "Lorg/junit/jupiter/api/Timeout;";
v = staticinvoke <org.junit.jupiter.api.extension.ExtensionContext$Namespace: org.junit.jupiter.api.extension.ExtensionContext$Namespace create(java.lang.Object[])>(v);
<org.junit.jupiter.engine.extension.TimeoutExtension: org.junit.jupiter.api.extension.ExtensionContext$Namespace NAMESPACE> = v;
return;
}
}