public abstract class com.google.common.util.concurrent.AbstractFuture<V> extends com.google.common.util.concurrent.FluentFuture<V>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.google.common.util.concurrent.AbstractFuture
super_class: com.google.common.util.concurrent.FluentFuture
{
private static final boolean GENERATE_CANCELLATION_CAUSES;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.logging.Logger log;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long SPIN_THRESHOLD_NANOS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1000
private static final com.google.common.util.concurrent.AbstractFuture$AtomicHelper ATOMIC_HELPER;
descriptor: Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Object NULL;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile java.lang.Object value;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
private volatile com.google.common.util.concurrent.AbstractFuture$Listener listeners;
descriptor: Lcom/google/common/util/concurrent/AbstractFuture$Listener;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
private volatile com.google.common.util.concurrent.AbstractFuture$Waiter waiters;
descriptor: Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=5, args_size=0
0: ldc "guava.concurrent.generate_cancellation_cause"
ldc "false"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
1: invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
2: putstatic com.google.common.util.concurrent.AbstractFuture.GENERATE_CANCELLATION_CAUSES:Z
3: ldc Lcom/google/common/util/concurrent/AbstractFuture;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
4: aconst_null
astore 1
start local 1 5: aconst_null
astore 2
start local 2 6: new com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper
dup
invokespecial com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper.<init>:()V
astore 0
start local 0 7: goto 22
end local 0 StackMap locals: top java.lang.Throwable java.lang.Throwable
StackMap stack: java.lang.Throwable
8: astore 3
start local 3 9: aload 3
astore 1
10: new com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper
dup
11: ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
ldc Ljava/lang/Thread;
ldc "thread"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
12: ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
ldc "next"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
13: ldc Lcom/google/common/util/concurrent/AbstractFuture;
ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
ldc "waiters"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
14: ldc Lcom/google/common/util/concurrent/AbstractFuture;
ldc Lcom/google/common/util/concurrent/AbstractFuture$Listener;
ldc "listeners"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
15: ldc Lcom/google/common/util/concurrent/AbstractFuture;
ldc Ljava/lang/Object;
ldc "value"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
16: invokespecial com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper.<init>:(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;)V
17: astore 0
start local 0 18: goto 22
end local 0 StackMap locals: top java.lang.Throwable java.lang.Throwable java.lang.Throwable
StackMap stack: java.lang.Throwable
19: astore 4
start local 4 20: aload 4
astore 2
21: new com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper
dup
invokespecial com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper.<init>:()V
astore 0
end local 4 end local 3 start local 0 22: StackMap locals: com.google.common.util.concurrent.AbstractFuture$AtomicHelper java.lang.Throwable java.lang.Throwable
StackMap stack:
aload 0
putstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
23: aload 2
ifnull 28
24: getstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
ldc "UnsafeAtomicHelper is broken!"
aload 1
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
25: getstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
26: getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
ldc "SafeAtomicHelper is broken!"
aload 2
27: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 end local 1 end local 0 28: StackMap locals:
StackMap stack:
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
7 8 0 helper Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
18 19 0 helper Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
22 28 0 helper Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
5 28 1 thrownUnsafeFailure Ljava/lang/Throwable;
6 28 2 thrownAtomicReferenceFieldUpdaterFailure Ljava/lang/Throwable;
9 22 3 unsafeFailure Ljava/lang/Throwable;
20 22 4 atomicReferenceFieldUpdaterFailure Ljava/lang/Throwable;
Exception table:
from to target type
6 7 8 Class java.lang.Throwable
10 18 19 Class java.lang.Throwable
private void removeWaiter(com.google.common.util.concurrent.AbstractFuture$Waiter);
descriptor: (Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aconst_null
putfield com.google.common.util.concurrent.AbstractFuture$Waiter.thread:Ljava/lang/Thread;
1: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 2: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 3
start local 3 3: aload 3
getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
if_acmpne 16
4: return
5: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
StackMap stack:
aload 3
getfield com.google.common.util.concurrent.AbstractFuture$Waiter.next:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 4
start local 4 6: aload 3
getfield com.google.common.util.concurrent.AbstractFuture$Waiter.thread:Ljava/lang/Thread;
ifnull 9
7: aload 3
astore 2
8: goto 15
StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter
StackMap stack:
9: aload 2
ifnull 13
10: aload 2
aload 4
putfield com.google.common.util.concurrent.AbstractFuture$Waiter.next:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
11: aload 2
getfield com.google.common.util.concurrent.AbstractFuture$Waiter.thread:Ljava/lang/Thread;
ifnonnull 15
12: goto 1
13: StackMap locals:
StackMap stack:
getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 3
aload 4
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
ifne 15
14: goto 1
15: StackMap locals:
StackMap stack:
aload 4
astore 3
end local 4 16: StackMap locals:
StackMap stack:
aload 3
ifnonnull 5
end local 3 end local 2 17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 18 1 node Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
2 17 2 pred Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
3 17 3 curr Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
6 16 4 succ Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
MethodParameters:
Name Flags
node
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.google.common.util.concurrent.FluentFuture.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
public V get(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 3 0: aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 4
start local 4 1: invokestatic java.lang.Thread.interrupted:()Z
ifeq 3
2: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
3: StackMap locals: long
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 6
start local 6 4: aload 6
ifnull 5
iconst_1
goto 6
StackMap locals: java.lang.Object
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: aload 6
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 7
iconst_0
goto 8
StackMap locals:
StackMap stack: int
7: iconst_1
StackMap locals: com.google.common.util.concurrent.AbstractFuture long java.util.concurrent.TimeUnit long java.lang.Object
StackMap stack: int int
8: iand
ifeq 10
9: aload 0
aload 6
invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
10: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifle 11
invokestatic java.lang.System.nanoTime:()J
lload 4
ladd
goto 12
StackMap locals:
StackMap stack:
11: lconst_0
StackMap locals:
StackMap stack: long
12: lstore 7
start local 7 13: lload 4
ldc 1000
lcmp
iflt 47
14: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 9
start local 9 15: aload 9
getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
if_acmpeq 36
16: new com.google.common.util.concurrent.AbstractFuture$Waiter
dup
invokespecial com.google.common.util.concurrent.AbstractFuture$Waiter.<init>:()V
astore 10
start local 10 17: StackMap locals: long com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
StackMap stack:
aload 10
aload 9
invokevirtual com.google.common.util.concurrent.AbstractFuture$Waiter.setNext:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
18: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 9
aload 10
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
ifeq 34
19: StackMap locals:
StackMap stack:
aload 0
lload 4
invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
20: invokestatic java.lang.Thread.interrupted:()Z
ifeq 23
21: aload 0
aload 10
invokevirtual com.google.common.util.concurrent.AbstractFuture.removeWaiter:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
22: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 6
24: aload 6
ifnull 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: aload 6
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 27
iconst_0
goto 28
StackMap locals:
StackMap stack: int
27: iconst_1
StackMap locals: com.google.common.util.concurrent.AbstractFuture long java.util.concurrent.TimeUnit long java.lang.Object long com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
StackMap stack: int int
28: iand
ifeq 30
29: aload 0
aload 6
invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
30: StackMap locals:
StackMap stack:
lload 7
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 4
31: lload 4
ldc 1000
lcmp
ifge 19
32: aload 0
aload 10
invokevirtual com.google.common.util.concurrent.AbstractFuture.removeWaiter:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
33: goto 47
34: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 9
35: aload 9
getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
if_acmpne 17
end local 10 36: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 9 37: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 6
38: aload 6
ifnull 39
iconst_1
goto 40
StackMap locals:
StackMap stack:
39: iconst_0
StackMap locals:
StackMap stack: int
40: aload 6
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 41
iconst_0
goto 42
StackMap locals:
StackMap stack: int
41: iconst_1
StackMap locals: com.google.common.util.concurrent.AbstractFuture long java.util.concurrent.TimeUnit long java.lang.Object long
StackMap stack: int int
42: iand
ifeq 44
43: aload 0
aload 6
invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
44: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
ifeq 46
45: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
46: StackMap locals:
StackMap stack:
lload 7
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 4
47: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifgt 37
48: aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.toString:()Ljava/lang/String;
astore 9
start local 9 49: aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.isDone:()Z
ifeq 58
50: new java.util.concurrent.TimeoutException
dup
51: new java.lang.StringBuilder
dup
ldc "Waited "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
52: lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
53: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
54: aload 3
invokevirtual java.util.concurrent.TimeUnit.toString:()Ljava/lang/String;
invokestatic com.google.common.base.Ascii.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
55: ldc " but future completed as timeout expired"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
56: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
57: invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
58: StackMap locals: java.lang.String
StackMap stack:
new java.util.concurrent.TimeoutException
dup
59: new java.lang.StringBuilder
dup
ldc "Waited "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.util.concurrent.TimeUnit.toString:()Ljava/lang/String;
invokestatic com.google.common.base.Ascii.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
60: invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
end local 9 end local 7 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 61 1 timeout J
0 61 3 unit Ljava/util/concurrent/TimeUnit;
1 61 4 remainingNanos J
4 61 6 localValue Ljava/lang/Object;
13 61 7 endNanos J
15 37 9 oldHead Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
17 36 10 node Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
49 61 9 futureToString Ljava/lang/String;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.TimeoutException, java.util.concurrent.ExecutionException
Signature: (JLjava/util/concurrent/TimeUnit;)TV;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
timeout
unit
public V get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: invokestatic java.lang.Thread.interrupted:()Z
ifeq 2
1: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 1
start local 1 3: aload 1
ifnull 4
iconst_1
goto 5
StackMap locals: java.lang.Object
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack: int
6: iconst_1
StackMap locals: com.google.common.util.concurrent.AbstractFuture java.lang.Object
StackMap stack: int int
7: iand
ifeq 9
8: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
9: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 2
start local 2 10: aload 2
getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
if_acmpeq 27
11: new com.google.common.util.concurrent.AbstractFuture$Waiter
dup
invokespecial com.google.common.util.concurrent.AbstractFuture$Waiter.<init>:()V
astore 3
start local 3 12: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
StackMap stack:
aload 3
aload 2
invokevirtual com.google.common.util.concurrent.AbstractFuture$Waiter.setNext:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
13: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 2
aload 3
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
ifeq 25
14: StackMap locals:
StackMap stack:
aload 0
invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
15: invokestatic java.lang.Thread.interrupted:()Z
ifeq 18
16: aload 0
aload 3
invokevirtual com.google.common.util.concurrent.AbstractFuture.removeWaiter:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
17: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 1
19: aload 1
ifnull 20
iconst_1
goto 21
StackMap locals:
StackMap stack:
20: iconst_0
StackMap locals:
StackMap stack: int
21: aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 22
iconst_0
goto 23
StackMap locals:
StackMap stack: int
22: iconst_1
StackMap locals: com.google.common.util.concurrent.AbstractFuture java.lang.Object com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
StackMap stack: int int
23: iand
ifeq 14
24: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
25: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 2
26: aload 2
getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
if_acmpne 12
end local 3 27: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
3 28 1 localValue Ljava/lang/Object;
10 28 2 oldHead Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
12 27 3 node Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
Signature: ()TV;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
private V getDoneValue();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
ifeq 2
1: ldc "Task was cancelled."
aload 1
checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.cause:Ljava/lang/Throwable;
invokestatic com.google.common.util.concurrent.AbstractFuture.cancellationExceptionWithCause:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/util/concurrent/CancellationException;
athrow
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$Failure
ifeq 4
3: new java.util.concurrent.ExecutionException
dup
aload 1
checkcast com.google.common.util.concurrent.AbstractFuture$Failure
getfield com.google.common.util.concurrent.AbstractFuture$Failure.exception:Ljava/lang/Throwable;
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
getstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
if_acmpne 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 1
astore 2
start local 2 7: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 8 1 obj Ljava/lang/Object;
7 8 2 asV TV;
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: (Ljava/lang/Object;)TV;
MethodParameters:
Name Flags
obj
public boolean isDone();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 4
iconst_0
goto 5
StackMap locals:
StackMap stack: int
4: iconst_1
StackMap locals: com.google.common.util.concurrent.AbstractFuture java.lang.Object
StackMap stack: int int
5: iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
1 6 1 localValue Ljava/lang/Object;
public boolean isCancelled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 1
start local 1 1: aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
1 2 1 localValue Ljava/lang/Object;
public boolean cancel(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 2
ifnonnull 3
iconst_1
goto 4
StackMap locals: java.lang.Object int
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: aload 2
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ior
ifeq 34
5: getstatic com.google.common.util.concurrent.AbstractFuture.GENERATE_CANCELLATION_CAUSES:Z
ifeq 10
6: new com.google.common.util.concurrent.AbstractFuture$Cancellation
dup
7: iload 1
new java.util.concurrent.CancellationException
dup
ldc "Future.cancel() was called."
invokespecial java.util.concurrent.CancellationException.<init>:(Ljava/lang/String;)V
8: invokespecial com.google.common.util.concurrent.AbstractFuture$Cancellation.<init>:(ZLjava/lang/Throwable;)V
9: goto 13
10: StackMap locals:
StackMap stack:
iload 1
ifeq 12
11: getstatic com.google.common.util.concurrent.AbstractFuture$Cancellation.CAUSELESS_INTERRUPTED:Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
goto 13
12: StackMap locals:
StackMap stack:
getstatic com.google.common.util.concurrent.AbstractFuture$Cancellation.CAUSELESS_CANCELLED:Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
13: StackMap locals:
StackMap stack: com.google.common.util.concurrent.AbstractFuture$Cancellation
astore 4
start local 4 14: aload 0
astore 5
start local 5 15: StackMap locals: java.lang.Object com.google.common.util.concurrent.AbstractFuture
StackMap stack:
getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 5
aload 2
aload 4
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 32
16: iconst_1
istore 3
17: iload 1
ifeq 19
18: aload 5
invokevirtual com.google.common.util.concurrent.AbstractFuture.interruptTask:()V
19: StackMap locals:
StackMap stack:
aload 5
invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
20: aload 2
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 34
21: aload 2
checkcast com.google.common.util.concurrent.AbstractFuture$SetFuture
getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.future:Lcom/google/common/util/concurrent/ListenableFuture;
astore 6
start local 6 22: aload 6
instanceof com.google.common.util.concurrent.AbstractFuture$TrustedFuture
ifeq 30
23: aload 6
checkcast com.google.common.util.concurrent.AbstractFuture
astore 7
start local 7 24: aload 7
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 2
25: aload 2
ifnonnull 26
iconst_1
goto 27
StackMap locals: com.google.common.util.concurrent.ListenableFuture com.google.common.util.concurrent.AbstractFuture
StackMap stack:
26: iconst_0
StackMap locals:
StackMap stack: int
27: aload 2
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ior
ifeq 34
28: aload 7
astore 5
29: goto 15
end local 7 30: StackMap locals:
StackMap stack:
aload 6
iload 1
invokeinterface com.google.common.util.concurrent.ListenableFuture.cancel:(Z)Z
pop
end local 6 31: goto 34
32: StackMap locals:
StackMap stack:
aload 5
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 2
33: aload 2
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifne 15
end local 5 end local 4 34: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 35 1 mayInterruptIfRunning Z
1 35 2 localValue Ljava/lang/Object;
2 35 3 rValue Z
14 34 4 valueToSet Ljava/lang/Object;
15 34 5 abstractFuture Lcom/google/common/util/concurrent/AbstractFuture<*>;
22 31 6 futureToPropagateTo Lcom/google/common/util/concurrent/ListenableFuture<*>;
24 30 7 trusted Lcom/google/common/util/concurrent/AbstractFuture<*>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
mayInterruptIfRunning
protected void interruptTask();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
protected final boolean wasInterrupted();
descriptor: ()Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 1
start local 1 1: aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
ifeq 2
aload 1
checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.wasInterrupted:Z
ifeq 2
iconst_1
ireturn
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
1 3 1 localValue Ljava/lang/Object;
public void addListener(java.lang.Runnable, java.util.concurrent.Executor);
descriptor: (Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "Runnable was null."
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
ldc "Executor was null."
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.listeners:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
astore 3
start local 3 3: aload 3
getstatic com.google.common.util.concurrent.AbstractFuture$Listener.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
if_acmpeq 10
4: new com.google.common.util.concurrent.AbstractFuture$Listener
dup
aload 1
aload 2
invokespecial com.google.common.util.concurrent.AbstractFuture$Listener.<init>:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
astore 4
start local 4 5: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener com.google.common.util.concurrent.AbstractFuture$Listener
StackMap stack:
aload 4
aload 3
putfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
6: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 3
aload 4
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casListeners:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Listener;Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Z
ifeq 8
7: return
8: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.listeners:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
astore 3
9: aload 3
getstatic com.google.common.util.concurrent.AbstractFuture$Listener.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
if_acmpne 5
end local 4 10: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic com.google.common.util.concurrent.AbstractFuture.executeListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
11: return
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/util/concurrent/AbstractFuture<TV;>;
0 12 1 listener Ljava/lang/Runnable;
0 12 2 executor Ljava/util/concurrent/Executor;
3 12 3 oldHead Lcom/google/common/util/concurrent/AbstractFuture$Listener;
5 10 4 newNode Lcom/google/common/util/concurrent/AbstractFuture$Listener;
MethodParameters:
Name Flags
listener
executor
protected boolean set();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
getstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: java.lang.Object
2: astore 2
start local 2 3: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aconst_null
aload 2
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 6
4: aload 0
invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
5: iconst_1
ireturn
6: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 7 1 value TV;
3 7 2 valueToSet Ljava/lang/Object;
Signature: (TV;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
value
protected boolean setException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: new com.google.common.util.concurrent.AbstractFuture$Failure
dup
aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
astore 2
start local 2 1: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aconst_null
aload 2
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 4
2: aload 0
invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
3: iconst_1
ireturn
4: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 5 1 throwable Ljava/lang/Throwable;
1 5 2 valueToSet Ljava/lang/Object;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
throwable
protected boolean setFuture(com.google.common.util.concurrent.ListenableFuture<? extends V>);
descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 2
start local 2 2: aload 2
ifnonnull 21
3: aload 1
invokeinterface com.google.common.util.concurrent.ListenableFuture.isDone:()Z
ifeq 9
4: aload 1
invokestatic com.google.common.util.concurrent.AbstractFuture.getFutureValue:(Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
astore 3
start local 3 5: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aconst_null
aload 3
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 8
6: aload 0
invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
7: iconst_1
ireturn
8: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
iconst_0
ireturn
end local 3 9: StackMap locals:
StackMap stack:
new com.google.common.util.concurrent.AbstractFuture$SetFuture
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.AbstractFuture$SetFuture.<init>:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/ListenableFuture;)V
astore 3
start local 3 10: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aconst_null
aload 3
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 20
11: aload 1
aload 3
invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
12: goto 19
StackMap locals: com.google.common.util.concurrent.AbstractFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object com.google.common.util.concurrent.AbstractFuture$SetFuture
StackMap stack: java.lang.Throwable
13: astore 4
start local 4 14: new com.google.common.util.concurrent.AbstractFuture$Failure
dup
aload 4
invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
astore 5
start local 5 15: goto 18
end local 5 StackMap locals: com.google.common.util.concurrent.AbstractFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object com.google.common.util.concurrent.AbstractFuture$SetFuture java.lang.Throwable
StackMap stack: java.lang.Throwable
16: pop
17: getstatic com.google.common.util.concurrent.AbstractFuture$Failure.FALLBACK_INSTANCE:Lcom/google/common/util/concurrent/AbstractFuture$Failure;
astore 5
start local 5 18: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Failure
StackMap stack:
getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 3
aload 5
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
pop
end local 5 end local 4 19: StackMap locals:
StackMap stack:
iconst_1
ireturn
20: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 2
end local 3 21: StackMap locals:
StackMap stack:
aload 2
instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
ifeq 23
22: aload 1
aload 2
checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.wasInterrupted:Z
invokeinterface com.google.common.util.concurrent.ListenableFuture.cancel:(Z)Z
pop
23: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 24 1 future Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
2 24 2 localValue Ljava/lang/Object;
5 9 3 value Ljava/lang/Object;
10 21 3 valueToSet Lcom/google/common/util/concurrent/AbstractFuture$SetFuture;
14 19 4 t Ljava/lang/Throwable;
15 16 5 failure Lcom/google/common/util/concurrent/AbstractFuture$Failure;
18 19 5 failure Lcom/google/common/util/concurrent/AbstractFuture$Failure;
Exception table:
from to target type
11 12 13 Class java.lang.Throwable
14 15 16 Class java.lang.Throwable
Signature: (Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;)Z
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
future
private static getFutureValue(com.google.common.util.concurrent.ListenableFuture<?>);
descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
instanceof com.google.common.util.concurrent.AbstractFuture$TrustedFuture
ifeq 10
1: aload 0
checkcast com.google.common.util.concurrent.AbstractFuture
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 2
start local 2 2: aload 2
instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
ifeq 9
3: aload 2
checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
astore 3
start local 3 4: aload 3
getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.wasInterrupted:Z
ifeq 9
5: aload 3
getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.cause:Ljava/lang/Throwable;
ifnull 7
6: new com.google.common.util.concurrent.AbstractFuture$Cancellation
dup
iconst_0
aload 3
getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.cause:Ljava/lang/Throwable;
invokespecial com.google.common.util.concurrent.AbstractFuture$Cancellation.<init>:(ZLjava/lang/Throwable;)V
goto 8
7: StackMap locals: com.google.common.util.concurrent.ListenableFuture top java.lang.Object com.google.common.util.concurrent.AbstractFuture$Cancellation
StackMap stack:
getstatic com.google.common.util.concurrent.AbstractFuture$Cancellation.CAUSELESS_CANCELLED:Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
8: StackMap locals:
StackMap stack: com.google.common.util.concurrent.AbstractFuture$Cancellation
astore 2
end local 3 9: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 10: StackMap locals: com.google.common.util.concurrent.ListenableFuture
StackMap stack:
aload 0
invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
astore 2
start local 2 11: aload 2
ifnonnull 12
getstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
goto 13
StackMap locals: com.google.common.util.concurrent.ListenableFuture top java.lang.Object
StackMap stack:
12: aload 2
StackMap locals:
StackMap stack: java.lang.Object
13: astore 1
end local 2 start local 1 14: goto 23
end local 1 StackMap locals: com.google.common.util.concurrent.ListenableFuture
StackMap stack: java.util.concurrent.ExecutionException
15: astore 2
start local 2 16: new com.google.common.util.concurrent.AbstractFuture$Failure
dup
aload 2
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
astore 1
end local 2 start local 1 17: goto 23
end local 1 18: StackMap locals:
StackMap stack: java.util.concurrent.CancellationException
astore 2
start local 2 19: new com.google.common.util.concurrent.AbstractFuture$Cancellation
dup
iconst_0
aload 2
invokespecial com.google.common.util.concurrent.AbstractFuture$Cancellation.<init>:(ZLjava/lang/Throwable;)V
astore 1
end local 2 start local 1 20: goto 23
end local 1 21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 22: new com.google.common.util.concurrent.AbstractFuture$Failure
dup
aload 2
invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
astore 1
end local 2 start local 1 23: StackMap locals: java.lang.Object
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 future Lcom/google/common/util/concurrent/ListenableFuture<*>;
14 15 1 valueToSet Ljava/lang/Object;
17 18 1 valueToSet Ljava/lang/Object;
20 21 1 valueToSet Ljava/lang/Object;
23 24 1 valueToSet Ljava/lang/Object;
2 10 2 v Ljava/lang/Object;
4 9 3 c Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
11 14 2 v Ljava/lang/Object;
16 17 2 exception Ljava/util/concurrent/ExecutionException;
19 20 2 cancellation Ljava/util/concurrent/CancellationException;
22 23 2 t Ljava/lang/Throwable;
Exception table:
from to target type
10 14 15 Class java.util.concurrent.ExecutionException
10 14 18 Class java.util.concurrent.CancellationException
10 14 21 Class java.lang.Throwable
Signature: (Lcom/google/common/util/concurrent/ListenableFuture<*>;)Ljava/lang/Object;
MethodParameters:
Name Flags
future
private static void complete(com.google.common.util.concurrent.AbstractFuture<?>);
descriptor: (Lcom/google/common/util/concurrent/AbstractFuture;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener
StackMap stack:
aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.releaseWaiters:()V
2: aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.afterDone:()V
3: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractFuture.clearListeners:(Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Lcom/google/common/util/concurrent/AbstractFuture$Listener;
astore 1
4: aconst_null
astore 0
5: goto 17
6: StackMap locals:
StackMap stack:
aload 1
astore 2
start local 2 7: aload 1
getfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
astore 1
8: aload 2
getfield com.google.common.util.concurrent.AbstractFuture$Listener.task:Ljava/lang/Runnable;
astore 3
start local 3 9: aload 3
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 16
10: aload 3
checkcast com.google.common.util.concurrent.AbstractFuture$SetFuture
astore 4
start local 4 11: aload 4
getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.owner:Lcom/google/common/util/concurrent/AbstractFuture;
astore 0
12: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
aload 4
if_acmpne 17
13: aload 4
getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.future:Lcom/google/common/util/concurrent/ListenableFuture;
invokestatic com.google.common.util.concurrent.AbstractFuture.getFutureValue:(Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
astore 5
start local 5 14: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 4
aload 5
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 17
15: goto 1
end local 5 end local 4 16: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener java.lang.Runnable
StackMap stack:
aload 3
aload 2
getfield com.google.common.util.concurrent.AbstractFuture$Listener.executor:Ljava/util/concurrent/Executor;
invokestatic com.google.common.util.concurrent.AbstractFuture.executeListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
end local 3 end local 2 17: StackMap locals:
StackMap stack:
aload 1
ifnonnull 6
18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 future Lcom/google/common/util/concurrent/AbstractFuture<*>;
1 19 1 next Lcom/google/common/util/concurrent/AbstractFuture$Listener;
7 17 2 curr Lcom/google/common/util/concurrent/AbstractFuture$Listener;
9 17 3 task Ljava/lang/Runnable;
11 16 4 setFuture Lcom/google/common/util/concurrent/AbstractFuture$SetFuture<*>;
14 16 5 valueToSet Ljava/lang/Object;
Signature: (Lcom/google/common/util/concurrent/AbstractFuture<*>;)V
MethodParameters:
Name Flags
future
protected void afterDone();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.errorprone.annotations.ForOverride()
final java.lang.Throwable trustedGetException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
checkcast com.google.common.util.concurrent.AbstractFuture$Failure
getfield com.google.common.util.concurrent.AbstractFuture$Failure.exception:Ljava/lang/Throwable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
final void maybePropagateCancellationTo(java.util.concurrent.Future<?>);
descriptor: (Ljava/util/concurrent/Future;)V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.isCancelled:()Z
iand
ifeq 4
3: aload 1
aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.wasInterrupted:()Z
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
pop
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/util/concurrent/AbstractFuture<TV;>;
0 5 1 related Ljava/util/concurrent/Future<*>;
Signature: (Ljava/util/concurrent/Future<*>;)V
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
related
private void releaseWaiters();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 1
start local 1 1: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 1
getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
ifeq 0
2: aload 1
astore 2
start local 2 3: goto 6
4: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
StackMap stack:
aload 2
invokevirtual com.google.common.util.concurrent.AbstractFuture$Waiter.unpark:()V
5: aload 2
getfield com.google.common.util.concurrent.AbstractFuture$Waiter.next:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
astore 2
StackMap locals:
StackMap stack:
6: aload 2
ifnonnull 4
end local 2 7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
1 8 1 head Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
3 7 2 currentWaiter Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
private com.google.common.util.concurrent.AbstractFuture$Listener clearListeners(com.google.common.util.concurrent.AbstractFuture$Listener);
descriptor: (Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Lcom/google/common/util/concurrent/AbstractFuture$Listener;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractFuture.listeners:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
astore 2
start local 2 1: getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
aload 0
aload 2
getstatic com.google.common.util.concurrent.AbstractFuture$Listener.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casListeners:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Listener;Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Z
ifeq 0
2: aload 1
astore 3
start local 3 3: goto 8
4: StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener com.google.common.util.concurrent.AbstractFuture$Listener
StackMap stack:
aload 2
astore 4
start local 4 5: aload 2
getfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
astore 2
6: aload 4
aload 3
putfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
7: aload 4
astore 3
end local 4 8: StackMap locals:
StackMap stack:
aload 2
ifnonnull 4
9: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 10 1 onto Lcom/google/common/util/concurrent/AbstractFuture$Listener;
1 10 2 head Lcom/google/common/util/concurrent/AbstractFuture$Listener;
3 10 3 reversedList Lcom/google/common/util/concurrent/AbstractFuture$Listener;
5 8 4 tmp Lcom/google/common/util/concurrent/AbstractFuture$Listener;
MethodParameters:
Name Flags
onto
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokespecial java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "[status="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
astore 1
start local 1 1: aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.isCancelled:()Z
ifeq 4
2: aload 1
ldc "CANCELLED"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: goto 18
StackMap locals: java.lang.StringBuilder
StackMap stack:
4: aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.isDone:()Z
ifeq 7
5: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractFuture.addDoneString:(Ljava/lang/StringBuilder;)V
6: goto 18
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.pendingToString:()Ljava/lang/String;
astore 2
start local 2 8: goto 11
end local 2 StackMap locals:
StackMap stack: java.lang.RuntimeException
9: astore 3
start local 3 10: new java.lang.StringBuilder
dup
ldc "Exception thrown from implementation: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
end local 3 start local 2 11: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokestatic com.google.common.base.Strings.isNullOrEmpty:(Ljava/lang/String;)Z
ifne 14
12: aload 1
ldc "PENDING, info=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: goto 18
StackMap locals:
StackMap stack:
14: aload 0
invokevirtual com.google.common.util.concurrent.AbstractFuture.isDone:()Z
ifeq 17
15: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractFuture.addDoneString:(Ljava/lang/StringBuilder;)V
16: goto 18
17: StackMap locals:
StackMap stack:
aload 1
ldc "PENDING"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 18: StackMap locals:
StackMap stack:
aload 1
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
1 19 1 builder Ljava/lang/StringBuilder;
8 9 2 pendingDescription Ljava/lang/String;
11 18 2 pendingDescription Ljava/lang/String;
10 11 3 e Ljava/lang/RuntimeException;
Exception table:
from to target type
7 8 9 Class java.lang.RuntimeException
protected java.lang.String pendingToString();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
astore 1
start local 1 1: aload 1
instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
ifeq 3
2: new java.lang.StringBuilder
dup
ldc "setFuture=["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
aload 1
checkcast com.google.common.util.concurrent.AbstractFuture$SetFuture
getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.future:Lcom/google/common/util/concurrent/ListenableFuture;
invokevirtual com.google.common.util.concurrent.AbstractFuture.userObjectToString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
instanceof java.util.concurrent.ScheduledFuture
ifeq 8
4: new java.lang.StringBuilder
dup
ldc "remaining delay=["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 0
checkcast java.util.concurrent.ScheduledFuture
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.ScheduledFuture.getDelay:(Ljava/util/concurrent/TimeUnit;)J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
6: ldc " ms]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
8: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
1 9 1 localValue Ljava/lang/Object;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
private void addDoneString(java.lang.StringBuilder);
descriptor: (Ljava/lang/StringBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
astore 2
start local 2 1: aload 1
ldc "SUCCESS, result=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
aload 2
invokevirtual com.google.common.util.concurrent.AbstractFuture.userObjectToString:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 2: goto 10
StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
3: astore 2
start local 2 4: aload 1
ldc "FAILURE, cause=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 5: goto 10
6: StackMap locals:
StackMap stack: java.util.concurrent.CancellationException
pop
7: aload 1
ldc "CANCELLED"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 10
8: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 2
start local 2 9: aload 1
ldc "UNKNOWN, cause=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " thrown from get()]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 11 1 builder Ljava/lang/StringBuilder;
1 2 2 value TV;
4 5 2 e Ljava/util/concurrent/ExecutionException;
9 10 2 e Ljava/lang/RuntimeException;
Exception table:
from to target type
0 2 3 Class java.util.concurrent.ExecutionException
0 2 6 Class java.util.concurrent.CancellationException
0 2 8 Class java.lang.RuntimeException
MethodParameters:
Name Flags
builder
private java.lang.String userObjectToString(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: ldc "this future"
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
0 3 1 o Ljava/lang/Object;
MethodParameters:
Name Flags
o
private static void executeListener(java.lang.Runnable, java.util.concurrent.Executor);
descriptor: (Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
1: goto 8
StackMap locals:
StackMap stack: java.lang.RuntimeException
2: astore 2
start local 2 3: getstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
4: getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
5: new java.lang.StringBuilder
dup
ldc "RuntimeException while executing runnable "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " with executor "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: aload 2
7: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 runnable Ljava/lang/Runnable;
0 9 1 executor Ljava/util/concurrent/Executor;
3 8 2 e Ljava/lang/RuntimeException;
Exception table:
from to target type
0 1 2 Class java.lang.RuntimeException
MethodParameters:
Name Flags
runnable
executor
private static java.util.concurrent.CancellationException cancellationExceptionWithCause(java.lang.String, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)Ljava/util/concurrent/CancellationException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.util.concurrent.CancellationException
dup
aload 0
invokespecial java.util.concurrent.CancellationException.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: aload 2
aload 1
invokevirtual java.util.concurrent.CancellationException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 message Ljava/lang/String;
0 3 1 cause Ljava/lang/Throwable;
1 3 2 exception Ljava/util/concurrent/CancellationException;
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
METHOD_FORMAL_PARAMETER
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
message
cause
}
Signature: <V:Ljava/lang/Object;>Lcom/google/common/util/concurrent/FluentFuture<TV;>;
SourceFile: "AbstractFuture.java"
NestMembers:
com.google.common.util.concurrent.AbstractFuture$AtomicHelper com.google.common.util.concurrent.AbstractFuture$Cancellation com.google.common.util.concurrent.AbstractFuture$Failure com.google.common.util.concurrent.AbstractFuture$Failure$1 com.google.common.util.concurrent.AbstractFuture$Listener com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper com.google.common.util.concurrent.AbstractFuture$SetFuture com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper com.google.common.util.concurrent.AbstractFuture$TrustedFuture com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1 com.google.common.util.concurrent.AbstractFuture$Waiter
InnerClasses:
private abstract AtomicHelper = com.google.common.util.concurrent.AbstractFuture$AtomicHelper of com.google.common.util.concurrent.AbstractFuture
private final Cancellation = com.google.common.util.concurrent.AbstractFuture$Cancellation of com.google.common.util.concurrent.AbstractFuture
private final Failure = com.google.common.util.concurrent.AbstractFuture$Failure of com.google.common.util.concurrent.AbstractFuture
private final Listener = com.google.common.util.concurrent.AbstractFuture$Listener of com.google.common.util.concurrent.AbstractFuture
private final SafeAtomicHelper = com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper of com.google.common.util.concurrent.AbstractFuture
private final SetFuture = com.google.common.util.concurrent.AbstractFuture$SetFuture of com.google.common.util.concurrent.AbstractFuture
private final SynchronizedHelper = com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper of com.google.common.util.concurrent.AbstractFuture
abstract TrustedFuture = com.google.common.util.concurrent.AbstractFuture$TrustedFuture of com.google.common.util.concurrent.AbstractFuture
private final UnsafeAtomicHelper = com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper of com.google.common.util.concurrent.AbstractFuture
private final Waiter = com.google.common.util.concurrent.AbstractFuture$Waiter of com.google.common.util.concurrent.AbstractFuture
public final Level = com.google.j2objc.annotations.ReflectionSupport$Level of com.google.j2objc.annotations.ReflectionSupport
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtCompatible(emulated = true)
com.google.j2objc.annotations.ReflectionSupport(value = com.google.j2objc.annotations.ReflectionSupport$Level.FULL:Lcom/google/j2objc/annotations/ReflectionSupport$Level;)