final class jdk.internal.loader.AbstractClassLoaderValue$Memoizer<CLV extends jdk.internal.loader.AbstractClassLoaderValue<CLV, V>, V> implements java.util.function.Supplier<V>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.loader.AbstractClassLoaderValue$Memoizer
super_class: java.lang.Object
{
private final java.lang.ClassLoader cl;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final CLV clv;
descriptor: Ljdk/internal/loader/AbstractClassLoaderValue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: TCLV;
private final java.util.function.BiFunction<? super java.lang.ClassLoader, ? super CLV, ? extends V> mappingFunction;
descriptor: Ljava/util/function/BiFunction;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/BiFunction<-Ljava/lang/ClassLoader;-TCLV;+TV;>;
private volatile V v;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: TV;
private volatile java.lang.Throwable t;
descriptor: Ljava/lang/Throwable;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private boolean inCall;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.ClassLoader, CLV, java.util.function.BiFunction<? super java.lang.ClassLoader, ? super CLV, ? extends V>);
descriptor: (Ljava/lang/ClassLoader;Ljdk/internal/loader/AbstractClassLoaderValue;Ljava/util/function/BiFunction;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.cl:Ljava/lang/ClassLoader;
2: aload 0
aload 2
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.clv:Ljdk/internal/loader/AbstractClassLoaderValue;
3: aload 0
aload 3
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.mappingFunction:Ljava/util/function/BiFunction;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/loader/AbstractClassLoaderValue$Memoizer<TCLV;TV;>;
0 5 1 cl Ljava/lang/ClassLoader;
0 5 2 clv TCLV;
0 5 3 mappingFunction Ljava/util/function/BiFunction<-Ljava/lang/ClassLoader;-TCLV;+TV;>;
Signature: (Ljava/lang/ClassLoader;TCLV;Ljava/util/function/BiFunction<-Ljava/lang/ClassLoader;-TCLV;+TV;>;)V
MethodParameters:
Name Flags
cl
clv
mappingFunction
public V get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.v:Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
areturn
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.t:Ljava/lang/Throwable;
astore 2
start local 2 3: aload 2
ifnonnull 24
4: aload 0
dup
astore 3
monitorenter
5: aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.v:Ljava/lang/Object;
dup
astore 1
ifnonnull 20
aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.t:Ljava/lang/Throwable;
dup
astore 2
ifnonnull 20
6: aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.inCall:Z
ifeq 8
7: new jdk.internal.loader.AbstractClassLoaderValue$Memoizer$RecursiveInvocationException
dup
invokespecial jdk.internal.loader.AbstractClassLoaderValue$Memoizer$RecursiveInvocationException.<init>:()V
athrow
8: StackMap locals: java.lang.Throwable jdk.internal.loader.AbstractClassLoaderValue$Memoizer
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.inCall:Z
9: aload 0
10: aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.mappingFunction:Ljava/util/function/BiFunction;
aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.cl:Ljava/lang/ClassLoader;
aload 0
getfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.clv:Ljdk/internal/loader/AbstractClassLoaderValue;
invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
11: invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
dup
astore 1
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.v:Ljava/lang/Object;
12: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 4
start local 4 14: aload 0
aload 4
dup
astore 2
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.t:Ljava/lang/Throwable;
end local 4 15: aload 0
iconst_0
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.inCall:Z
goto 20
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
17: aload 0
iconst_0
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.inCall:Z
18: aload 5
athrow
19: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield jdk.internal.loader.AbstractClassLoaderValue$Memoizer.inCall:Z
20: StackMap locals:
StackMap stack:
aload 3
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 3
monitorexit
23: athrow
24: StackMap locals:
StackMap stack:
aload 1
ifnull 25
aload 1
areturn
25: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.Error
ifeq 27
26: aload 2
checkcast java.lang.Error
athrow
27: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.RuntimeException
ifeq 29
28: aload 2
checkcast java.lang.RuntimeException
athrow
29: StackMap locals:
StackMap stack:
new java.lang.reflect.UndeclaredThrowableException
dup
aload 2
invokespecial java.lang.reflect.UndeclaredThrowableException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Ljdk/internal/loader/AbstractClassLoaderValue$Memoizer<TCLV;TV;>;
1 30 1 v TV;
3 30 2 t Ljava/lang/Throwable;
14 15 4 x Ljava/lang/Throwable;
Exception table:
from to target type
9 12 13 Class java.lang.Throwable
9 15 16 any
5 21 22 any
22 23 22 any
Exceptions:
throws jdk.internal.loader.AbstractClassLoaderValue$Memoizer$RecursiveInvocationException
Signature: ()TV;
}
Signature: <CLV:Ljdk/internal/loader/AbstractClassLoaderValue<TCLV;TV;>;V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/function/Supplier<TV;>;
SourceFile: "AbstractClassLoaderValue.java"
NestHost: jdk.internal.loader.AbstractClassLoaderValue
InnerClasses:
private final Memoizer = jdk.internal.loader.AbstractClassLoaderValue$Memoizer of jdk.internal.loader.AbstractClassLoaderValue
RecursiveInvocationException = jdk.internal.loader.AbstractClassLoaderValue$Memoizer$RecursiveInvocationException of jdk.internal.loader.AbstractClassLoaderValue$Memoizer