class org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier extends java.lang.Object implements java.util.function.Supplier
{
private static final java.lang.Object NO_VALUE_SET;
private final java.util.concurrent.locks.Lock lock;
private final java.util.function.Supplier delegate;
private volatile java.lang.Object value;
private void <init>(java.util.function.Supplier)
{
java.util.concurrent.locks.ReentrantLock v;
java.lang.Object v;
java.util.function.Supplier v;
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier v;
v := @this: org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier;
v := @parameter: java.util.function.Supplier;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.util.concurrent.locks.Lock lock> = v;
v = <org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object NO_VALUE_SET>;
v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value> = v;
v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.util.function.Supplier delegate> = v;
return;
}
public java.lang.Object get()
{
java.lang.RuntimeException v;
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier v;
java.lang.Object v, v, v, v, v;
boolean v;
v := @this: org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier;
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value>;
v = <org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object NO_VALUE_SET>;
if v != v goto label;
specialinvoke v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: void computeValue()>();
label:
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value>;
v = v instanceof org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier$Failure;
if v == 0 goto label;
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value>;
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier$Failure: java.lang.RuntimeException exception>;
throw v;
label:
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value>;
return v;
}
private void computeValue()
{
java.lang.Throwable v;
java.lang.RuntimeException v;
java.util.function.Supplier v;
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier v;
java.util.concurrent.locks.Lock v, v, v, v;
java.lang.Object v, v, v;
org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier$Failure v;
v := @this: org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier;
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.util.concurrent.locks.Lock lock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value>;
v = <org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object NO_VALUE_SET>;
if v != v goto label;
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.util.function.Supplier delegate>;
v = interfaceinvoke v.<java.util.function.Supplier: java.lang.Object get()>();
v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value> = v;
label:
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.util.concurrent.locks.Lock lock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = new org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier$Failure;
specialinvoke v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier$Failure: void <init>(java.lang.RuntimeException)>(v);
v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object value> = v;
label:
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.util.concurrent.locks.Lock lock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.util.concurrent.locks.Lock lock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
java.lang.Object v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier: java.lang.Object NO_VALUE_SET> = v;
return;
}
}