class com.google.common.cache.LocalCache$LoadingValueReference<K, V> implements com.google.common.cache.LocalCache$ValueReference<K, V>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.google.common.cache.LocalCache$LoadingValueReference
super_class: java.lang.Object
{
volatile com.google.common.cache.LocalCache$ValueReference<K, V> oldValue;
descriptor: Lcom/google/common/cache/LocalCache$ValueReference;
flags: (0x0040) ACC_VOLATILE
Signature: Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
final com.google.common.util.concurrent.SettableFuture<V> futureValue;
descriptor: Lcom/google/common/util/concurrent/SettableFuture;
flags: (0x0010) ACC_FINAL
Signature: Lcom/google/common/util/concurrent/SettableFuture<TV;>;
final com.google.common.base.Stopwatch stopwatch;
descriptor: Lcom/google/common/base/Stopwatch;
flags: (0x0010) ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokespecial com.google.common.cache.LocalCache$LoadingValueReference.<init>:(Lcom/google/common/cache/LocalCache$ValueReference;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
public void <init>(com.google.common.cache.LocalCache$ValueReference<K, V>);
descriptor: (Lcom/google/common/cache/LocalCache$ValueReference;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic com.google.common.util.concurrent.SettableFuture.create:()Lcom/google/common/util/concurrent/SettableFuture;
putfield com.google.common.cache.LocalCache$LoadingValueReference.futureValue:Lcom/google/common/util/concurrent/SettableFuture;
2: aload 0
invokestatic com.google.common.base.Stopwatch.createUnstarted:()Lcom/google/common/base/Stopwatch;
putfield com.google.common.cache.LocalCache$LoadingValueReference.stopwatch:Lcom/google/common/base/Stopwatch;
3: aload 0
aload 1
ifnonnull 4
invokestatic com.google.common.cache.LocalCache.unset:()Lcom/google/common/cache/LocalCache$ValueReference;
goto 5
StackMap locals: com.google.common.cache.LocalCache$LoadingValueReference com.google.common.cache.LocalCache$ValueReference
StackMap stack: com.google.common.cache.LocalCache$LoadingValueReference
4: aload 1
StackMap locals: com.google.common.cache.LocalCache$LoadingValueReference com.google.common.cache.LocalCache$ValueReference
StackMap stack: com.google.common.cache.LocalCache$LoadingValueReference com.google.common.cache.LocalCache$ValueReference
5: putfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 7 1 oldValue Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
Signature: (Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;)V
MethodParameters:
Name Flags
oldValue
public boolean isLoading();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
public boolean isActive();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.isActive:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
public int getWeight();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.getWeight:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
public boolean set();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.futureValue:Lcom/google/common/util/concurrent/SettableFuture;
aload 1
invokevirtual com.google.common.util.concurrent.SettableFuture.set:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 1 1 newValue TV;
Signature: (TV;)Z
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
newValue
public boolean setException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.futureValue:Lcom/google/common/util/concurrent/SettableFuture;
aload 1
invokevirtual com.google.common.util.concurrent.SettableFuture.setException:(Ljava/lang/Throwable;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 1 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private com.google.common.util.concurrent.ListenableFuture<V> fullyFailedFuture(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.util.concurrent.Futures.immediateFailedFuture:(Ljava/lang/Throwable;)Lcom/google/common/util/concurrent/ListenableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 1 1 t Ljava/lang/Throwable;
Signature: (Ljava/lang/Throwable;)Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
MethodParameters:
Name Flags
t
public void notifyNewValue();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 3
1: aload 0
aload 1
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.set:(Ljava/lang/Object;)Z
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
invokestatic com.google.common.cache.LocalCache.unset:()Lcom/google/common/cache/LocalCache$ValueReference;
putfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 5 1 newValue TV;
Signature: (TV;)V
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
newValue
public com.google.common.util.concurrent.ListenableFuture<V> loadFuture(K, com.google.common.cache.CacheLoader<? super K, V>);
descriptor: (Ljava/lang/Object;Lcom/google/common/cache/CacheLoader;)Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.stopwatch:Lcom/google/common/base/Stopwatch;
invokevirtual com.google.common.base.Stopwatch.start:()Lcom/google/common/base/Stopwatch;
pop
1: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
astore 3
start local 3 2: aload 3
ifnonnull 7
3: aload 2
aload 1
invokevirtual com.google.common.cache.CacheLoader.load:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 4: aload 0
aload 4
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.set:(Ljava/lang/Object;)Z
ifeq 5
aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.futureValue:Lcom/google/common/util/concurrent/SettableFuture;
goto 6
StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
5: aload 4
invokestatic com.google.common.util.concurrent.Futures.immediateFuture:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
StackMap locals:
StackMap stack: com.google.common.util.concurrent.ListenableFuture
6: areturn
end local 4 7: StackMap locals:
StackMap stack:
aload 2
aload 1
aload 3
invokevirtual com.google.common.cache.CacheLoader.reload:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 4
start local 4 8: aload 4
ifnonnull 11
9: aconst_null
invokestatic com.google.common.util.concurrent.Futures.immediateFuture:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
10: areturn
11: StackMap locals: com.google.common.util.concurrent.ListenableFuture
StackMap stack:
aload 4
12: new com.google.common.cache.LocalCache$LoadingValueReference$1
dup
aload 0
invokespecial com.google.common.cache.LocalCache$LoadingValueReference$1.<init>:(Lcom/google/common/cache/LocalCache$LoadingValueReference;)V
13: invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
14: invokestatic com.google.common.util.concurrent.Futures.transform:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/base/Function;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
15: areturn
end local 4 end local 3 16: StackMap locals: com.google.common.cache.LocalCache$LoadingValueReference java.lang.Object com.google.common.cache.CacheLoader
StackMap stack: java.lang.Throwable
astore 3
start local 3 17: aload 0
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.setException:(Ljava/lang/Throwable;)Z
ifeq 18
aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.futureValue:Lcom/google/common/util/concurrent/SettableFuture;
goto 19
StackMap locals: java.lang.Throwable
StackMap stack:
18: aload 0
aload 3
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.fullyFailedFuture:(Ljava/lang/Throwable;)Lcom/google/common/util/concurrent/ListenableFuture;
StackMap locals:
StackMap stack: com.google.common.util.concurrent.ListenableFuture
19: astore 4
start local 4 20: aload 3
instanceof java.lang.InterruptedException
ifeq 22
21: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
22: StackMap locals: com.google.common.util.concurrent.ListenableFuture
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 23 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 23 1 key TK;
0 23 2 loader Lcom/google/common/cache/CacheLoader<-TK;TV;>;
2 16 3 previousValue TV;
4 7 4 newValue TV;
8 16 4 newValue Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
17 23 3 t Ljava/lang/Throwable;
20 23 4 result Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
Exception table:
from to target type
0 6 16 Class java.lang.Throwable
7 10 16 Class java.lang.Throwable
11 15 16 Class java.lang.Throwable
Signature: (TK;Lcom/google/common/cache/CacheLoader<-TK;TV;>;)Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
MethodParameters:
Name Flags
key
loader
public V compute(K, java.util.function.BiFunction<? super K, ? super V, ? extends V>);
descriptor: (Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.stopwatch:Lcom/google/common/base/Stopwatch;
invokevirtual com.google.common.base.Stopwatch.start:()Lcom/google/common/base/Stopwatch;
pop
1: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.waitForValue:()Ljava/lang/Object;
astore 3
start local 3 2: goto 5
end local 3 StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
3: pop
4: aconst_null
astore 3
start local 3 5: StackMap locals: java.lang.Object
StackMap stack:
aload 2
aload 1
aload 3
invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 6: goto 10
end local 4 StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 5
start local 5 8: aload 0
aload 5
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.setException:(Ljava/lang/Throwable;)Z
pop
9: aload 5
athrow
end local 5 start local 4 10: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 4
invokevirtual com.google.common.cache.LocalCache$LoadingValueReference.set:(Ljava/lang/Object;)Z
pop
11: 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 12 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 12 1 key TK;
0 12 2 function Ljava/util/function/BiFunction<-TK;-TV;+TV;>;
2 3 3 previousValue TV;
5 12 3 previousValue TV;
6 7 4 newValue TV;
10 12 4 newValue TV;
8 10 5 th Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.util.concurrent.ExecutionException
5 6 7 Class java.lang.Throwable
Signature: (TK;Ljava/util/function/BiFunction<-TK;-TV;+TV;>;)TV;
MethodParameters:
Name Flags
key
function
public long elapsedNanos();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.stopwatch:Lcom/google/common/base/Stopwatch;
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.google.common.base.Stopwatch.elapsed:(Ljava/util/concurrent/TimeUnit;)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
public V waitForValue();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.futureValue:Lcom/google/common/util/concurrent/SettableFuture;
invokestatic com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: ()TV;
public V get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
invokeinterface com.google.common.cache.LocalCache$ValueReference.get:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
Signature: ()TV;
public com.google.common.cache.LocalCache$ValueReference<K, V> getOldValue();
descriptor: ()Lcom/google/common/cache/LocalCache$ValueReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.cache.LocalCache$LoadingValueReference.oldValue:Lcom/google/common/cache/LocalCache$ValueReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
Signature: ()Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
public com.google.common.cache.ReferenceEntry<K, V> getEntry();
descriptor: ()Lcom/google/common/cache/ReferenceEntry;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
Signature: ()Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
public com.google.common.cache.LocalCache$ValueReference<K, V> copyFor(java.lang.ref.ReferenceQueue<V>, V, com.google.common.cache.ReferenceEntry<K, V>);
descriptor: (Ljava/lang/ref/ReferenceQueue;Ljava/lang/Object;Lcom/google/common/cache/ReferenceEntry;)Lcom/google/common/cache/LocalCache$ValueReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/cache/LocalCache$LoadingValueReference<TK;TV;>;
0 1 1 queue Ljava/lang/ref/ReferenceQueue<TV;>;
0 1 2 value TV;
0 1 3 entry Lcom/google/common/cache/ReferenceEntry<TK;TV;>;
Signature: (Ljava/lang/ref/ReferenceQueue<TV;>;TV;Lcom/google/common/cache/ReferenceEntry<TK;TV;>;)Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
queue
value
entry
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Lcom/google/common/cache/LocalCache$ValueReference<TK;TV;>;
SourceFile: "LocalCache.java"
NestHost: com.google.common.cache.LocalCache
InnerClasses:
LoadingValueReference = com.google.common.cache.LocalCache$LoadingValueReference of com.google.common.cache.LocalCache
com.google.common.cache.LocalCache$LoadingValueReference$1
abstract ValueReference = com.google.common.cache.LocalCache$ValueReference of com.google.common.cache.LocalCache