public final class com.google.common.util.concurrent.ClosingFuture<V>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.util.concurrent.ClosingFuture
super_class: java.lang.Object
{
private static final java.util.logging.Logger logger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.atomic.AtomicReference<com.google.common.util.concurrent.ClosingFuture$State> state;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/google/common/util/concurrent/ClosingFuture$State;>;
private final com.google.common.util.concurrent.ClosingFuture$CloseableList closeables;
descriptor: Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.FluentFuture<V> future;
descriptor: Lcom/google/common/util/concurrent/FluentFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/FluentFuture<TV;>;
private static volatile int[] $SWITCH_TABLE$com$google$common$util$concurrent$ClosingFuture$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/google/common/util/concurrent/ClosingFuture;
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.ClosingFuture.logger:Ljava/util/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public static <V> com.google.common.util.concurrent.ClosingFuture<V> submit(com.google.common.util.concurrent.ClosingFuture$ClosingCallable<V>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.google.common.util.concurrent.ClosingFuture
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture.<init>:(Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable;Ljava/util/concurrent/Executor;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 callable Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable<TV;>;
0 1 1 executor Ljava/util/concurrent/Executor;
Signature: <V:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable<TV;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
callable
executor
public static <V> com.google.common.util.concurrent.ClosingFuture<V> from(com.google.common.util.concurrent.ListenableFuture<V>);
descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.util.concurrent.ClosingFuture
dup
aload 0
invokespecial com.google.common.util.concurrent.ClosingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 future Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
Signature: <V:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ListenableFuture<TV;>;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
future
public static <C extends java.lang.AutoCloseable> com.google.common.util.concurrent.ClosingFuture<C> eventuallyClosing(com.google.common.util.concurrent.ListenableFuture<C>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, 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: new com.google.common.util.concurrent.ClosingFuture
dup
aload 0
invokestatic com.google.common.util.concurrent.Futures.nonCancellationPropagating:(Lcom/google/common/util/concurrent/ListenableFuture;)Lcom/google/common/util/concurrent/ListenableFuture;
invokespecial com.google.common.util.concurrent.ClosingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;)V
astore 2
start local 2 2: aload 0
3: new com.google.common.util.concurrent.ClosingFuture$1
RuntimeVisibleTypeAnnotation: org.checkerframework.checker.nullness.qual.Nullable()
dup
aload 2
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$1.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Ljava/util/concurrent/Executor;)V
4: invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
5: invokestatic com.google.common.util.concurrent.Futures.addCallback:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;Ljava/util/concurrent/Executor;)V
6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 future Lcom/google/common/util/concurrent/ListenableFuture<TC;>;
0 7 1 closingExecutor Ljava/util/concurrent/Executor;
2 7 2 closingFuture Lcom/google/common/util/concurrent/ClosingFuture<TC;>;
Signature: <C:Ljava/lang/Object;:Ljava/lang/AutoCloseable;>(Lcom/google/common/util/concurrent/ListenableFuture<TC;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TC;>;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
RuntimeVisibleTypeAnnotations:
METHOD_TYPE_PARAMETER_BOUND
org.checkerframework.checker.nullness.qual.Nullable()
METHOD_TYPE_PARAMETER_BOUND
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
future
closingExecutor final
public static com.google.common.util.concurrent.ClosingFuture$Combiner whenAllComplete(java.lang.Iterable<? extends com.google.common.util.concurrent.ClosingFuture<?>>);
descriptor: (Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new com.google.common.util.concurrent.ClosingFuture$Combiner
dup
iconst_0
aload 0
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner.<init>:(ZLjava/lang/Iterable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 futures Ljava/lang/Iterable<+Lcom/google/common/util/concurrent/ClosingFuture<*>;>;
Signature: (Ljava/lang/Iterable<+Lcom/google/common/util/concurrent/ClosingFuture<*>;>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
MethodParameters:
Name Flags
futures
public static com.google.common.util.concurrent.ClosingFuture$Combiner whenAllComplete(com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.ClosingFuture<?>[]);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture;[Lcom/google/common/util/concurrent/ClosingFuture;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.google.common.collect.Lists.asList:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/util/List;
invokestatic com.google.common.util.concurrent.ClosingFuture.whenAllComplete:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 future1 Lcom/google/common/util/concurrent/ClosingFuture<*>;
0 1 1 moreFutures [Lcom/google/common/util/concurrent/ClosingFuture;
Signature: (Lcom/google/common/util/concurrent/ClosingFuture<*>;[Lcom/google/common/util/concurrent/ClosingFuture<*>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
MethodParameters:
Name Flags
future1
moreFutures
public static com.google.common.util.concurrent.ClosingFuture$Combiner whenAllSucceed(java.lang.Iterable<? extends com.google.common.util.concurrent.ClosingFuture<?>>);
descriptor: (Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new com.google.common.util.concurrent.ClosingFuture$Combiner
dup
iconst_1
aload 0
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner.<init>:(ZLjava/lang/Iterable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 futures Ljava/lang/Iterable<+Lcom/google/common/util/concurrent/ClosingFuture<*>;>;
Signature: (Ljava/lang/Iterable<+Lcom/google/common/util/concurrent/ClosingFuture<*>;>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
MethodParameters:
Name Flags
futures
public static <V1, V2> com.google.common.util.concurrent.ClosingFuture$Combiner2<V1, V2> whenAllSucceed(com.google.common.util.concurrent.ClosingFuture<V1>, com.google.common.util.concurrent.ClosingFuture<V2>);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner2;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.google.common.util.concurrent.ClosingFuture$Combiner2
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner2.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 future1 Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;
0 1 1 future2 Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;
Signature: <V1:Ljava/lang/Object;V2:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner2<TV1;TV2;>;
MethodParameters:
Name Flags
future1
future2
public static <V1, V2, V3> com.google.common.util.concurrent.ClosingFuture$Combiner3<V1, V2, V3> whenAllSucceed(com.google.common.util.concurrent.ClosingFuture<V1>, com.google.common.util.concurrent.ClosingFuture<V2>, com.google.common.util.concurrent.ClosingFuture<V3>);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner3;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.google.common.util.concurrent.ClosingFuture$Combiner3
dup
aload 0
aload 1
aload 2
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner3.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 future1 Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;
0 1 1 future2 Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;
0 1 2 future3 Lcom/google/common/util/concurrent/ClosingFuture<TV3;>;
Signature: <V1:Ljava/lang/Object;V2:Ljava/lang/Object;V3:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;Lcom/google/common/util/concurrent/ClosingFuture<TV3;>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner3<TV1;TV2;TV3;>;
MethodParameters:
Name Flags
future1
future2
future3
public static <V1, V2, V3, V4> com.google.common.util.concurrent.ClosingFuture$Combiner4<V1, V2, V3, V4> whenAllSucceed(com.google.common.util.concurrent.ClosingFuture<V1>, com.google.common.util.concurrent.ClosingFuture<V2>, com.google.common.util.concurrent.ClosingFuture<V3>, com.google.common.util.concurrent.ClosingFuture<V4>);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner4;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.google.common.util.concurrent.ClosingFuture$Combiner4
dup
aload 0
aload 1
aload 2
aload 3
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner4.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 future1 Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;
0 1 1 future2 Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;
0 1 2 future3 Lcom/google/common/util/concurrent/ClosingFuture<TV3;>;
0 1 3 future4 Lcom/google/common/util/concurrent/ClosingFuture<TV4;>;
Signature: <V1:Ljava/lang/Object;V2:Ljava/lang/Object;V3:Ljava/lang/Object;V4:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;Lcom/google/common/util/concurrent/ClosingFuture<TV3;>;Lcom/google/common/util/concurrent/ClosingFuture<TV4;>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner4<TV1;TV2;TV3;TV4;>;
MethodParameters:
Name Flags
future1
future2
future3
future4
public static <V1, V2, V3, V4, V5> com.google.common.util.concurrent.ClosingFuture$Combiner5<V1, V2, V3, V4, V5> whenAllSucceed(com.google.common.util.concurrent.ClosingFuture<V1>, com.google.common.util.concurrent.ClosingFuture<V2>, com.google.common.util.concurrent.ClosingFuture<V3>, com.google.common.util.concurrent.ClosingFuture<V4>, com.google.common.util.concurrent.ClosingFuture<V5>);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner5;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new com.google.common.util.concurrent.ClosingFuture$Combiner5
dup
aload 0
aload 1
aload 2
aload 3
aload 4
invokespecial com.google.common.util.concurrent.ClosingFuture$Combiner5.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 future1 Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;
0 1 1 future2 Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;
0 1 2 future3 Lcom/google/common/util/concurrent/ClosingFuture<TV3;>;
0 1 3 future4 Lcom/google/common/util/concurrent/ClosingFuture<TV4;>;
0 1 4 future5 Lcom/google/common/util/concurrent/ClosingFuture<TV5;>;
Signature: <V1:Ljava/lang/Object;V2:Ljava/lang/Object;V3:Ljava/lang/Object;V4:Ljava/lang/Object;V5:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture<TV1;>;Lcom/google/common/util/concurrent/ClosingFuture<TV2;>;Lcom/google/common/util/concurrent/ClosingFuture<TV3;>;Lcom/google/common/util/concurrent/ClosingFuture<TV4;>;Lcom/google/common/util/concurrent/ClosingFuture<TV5;>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner5<TV1;TV2;TV3;TV4;TV5;>;
MethodParameters:
Name Flags
future1
future2
future3
future4
future5
public static com.google.common.util.concurrent.ClosingFuture$Combiner whenAllSucceed(com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.ClosingFuture<?>, com.google.common.util.concurrent.ClosingFuture<?>[]);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture;[Lcom/google/common/util/concurrent/ClosingFuture;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
iconst_5
anewarray com.google.common.util.concurrent.ClosingFuture
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 4
aastore
dup
iconst_4
aload 5
aastore
invokestatic com.google.common.collect.FluentIterable.of:(Ljava/lang/Object;[Ljava/lang/Object;)Lcom/google/common/collect/FluentIterable;
1: aload 6
invokevirtual com.google.common.collect.FluentIterable.append:([Ljava/lang/Object;)Lcom/google/common/collect/FluentIterable;
2: invokestatic com.google.common.util.concurrent.ClosingFuture.whenAllSucceed:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 future1 Lcom/google/common/util/concurrent/ClosingFuture<*>;
0 3 1 future2 Lcom/google/common/util/concurrent/ClosingFuture<*>;
0 3 2 future3 Lcom/google/common/util/concurrent/ClosingFuture<*>;
0 3 3 future4 Lcom/google/common/util/concurrent/ClosingFuture<*>;
0 3 4 future5 Lcom/google/common/util/concurrent/ClosingFuture<*>;
0 3 5 future6 Lcom/google/common/util/concurrent/ClosingFuture<*>;
0 3 6 moreFutures [Lcom/google/common/util/concurrent/ClosingFuture;
Signature: (Lcom/google/common/util/concurrent/ClosingFuture<*>;Lcom/google/common/util/concurrent/ClosingFuture<*>;Lcom/google/common/util/concurrent/ClosingFuture<*>;Lcom/google/common/util/concurrent/ClosingFuture<*>;Lcom/google/common/util/concurrent/ClosingFuture<*>;Lcom/google/common/util/concurrent/ClosingFuture<*>;[Lcom/google/common/util/concurrent/ClosingFuture<*>;)Lcom/google/common/util/concurrent/ClosingFuture$Combiner;
MethodParameters:
Name Flags
future1
future2
future3
future4
future5
future6
moreFutures
private void <init>(com.google.common.util.concurrent.ListenableFuture<V>);
descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
getstatic com.google.common.util.concurrent.ClosingFuture$State.OPEN:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
new com.google.common.util.concurrent.ClosingFuture$CloseableList
dup
invokespecial com.google.common.util.concurrent.ClosingFuture$CloseableList.<init>:()V
putfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
3: aload 0
aload 1
invokestatic com.google.common.util.concurrent.FluentFuture.from:(Lcom/google/common/util/concurrent/ListenableFuture;)Lcom/google/common/util/concurrent/FluentFuture;
putfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 5 1 future Lcom/google/common/util/concurrent/ListenableFuture<TV;>;
Signature: (Lcom/google/common/util/concurrent/ListenableFuture<TV;>;)V
MethodParameters:
Name Flags
future
private void <init>(com.google.common.util.concurrent.ClosingFuture$ClosingCallable<V>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable;Ljava/util/concurrent/Executor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
getstatic com.google.common.util.concurrent.ClosingFuture$State.OPEN:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
new com.google.common.util.concurrent.ClosingFuture$CloseableList
dup
invokespecial com.google.common.util.concurrent.ClosingFuture$CloseableList.<init>:()V
putfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
3: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: new com.google.common.util.concurrent.ClosingFuture$2
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$2.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable;)V
5: invokestatic com.google.common.util.concurrent.TrustedListenableFutureTask.create:(Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/TrustedListenableFutureTask;
6: astore 3
start local 3 7: aload 2
aload 3
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
8: aload 0
aload 3
putfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
9: return
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/ClosingFuture<TV;>;
0 10 1 callable Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable<TV;>;
0 10 2 executor Ljava/util/concurrent/Executor;
7 10 3 task Lcom/google/common/util/concurrent/TrustedListenableFutureTask<TV;>;
Signature: (Lcom/google/common/util/concurrent/ClosingFuture$ClosingCallable<TV;>;Ljava/util/concurrent/Executor;)V
MethodParameters:
Name Flags
callable final
executor
public com.google.common.util.concurrent.ListenableFuture<?> statusFuture();
descriptor: ()Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
aconst_null
invokestatic com.google.common.base.Functions.constant:(Ljava/lang/Object;)Lcom/google/common/base/Function;
invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
invokevirtual com.google.common.util.concurrent.FluentFuture.transform:(Lcom/google/common/base/Function;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/FluentFuture;
invokestatic com.google.common.util.concurrent.Futures.nonCancellationPropagating:(Lcom/google/common/util/concurrent/ListenableFuture;)Lcom/google/common/util/concurrent/ListenableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
Signature: ()Lcom/google/common/util/concurrent/ListenableFuture<*>;
public <U> com.google.common.util.concurrent.ClosingFuture<U> transform(com.google.common.util.concurrent.ClosingFuture$ClosingFunction<? super V, U>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new com.google.common.util.concurrent.ClosingFuture$3
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$3.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction;)V
2: astore 3
start local 3 3: aload 0
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
aload 3
aload 2
invokevirtual com.google.common.util.concurrent.FluentFuture.transformAsync:(Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/FluentFuture;
invokevirtual com.google.common.util.concurrent.ClosingFuture.derive:(Lcom/google/common/util/concurrent/FluentFuture;)Lcom/google/common/util/concurrent/ClosingFuture;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 4 1 function Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction<-TV;TU;>;
0 4 2 executor Ljava/util/concurrent/Executor;
3 4 3 applyFunction Lcom/google/common/util/concurrent/AsyncFunction<TV;TU;>;
Signature: <U:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction<-TV;TU;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TU;>;
MethodParameters:
Name Flags
function final
executor
public <U> com.google.common.util.concurrent.ClosingFuture<U> transformAsync(com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction<? super V, U>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new com.google.common.util.concurrent.ClosingFuture$4
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$4.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction;)V
2: astore 3
start local 3 3: aload 0
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
aload 3
aload 2
invokevirtual com.google.common.util.concurrent.FluentFuture.transformAsync:(Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/FluentFuture;
invokevirtual com.google.common.util.concurrent.ClosingFuture.derive:(Lcom/google/common/util/concurrent/FluentFuture;)Lcom/google/common/util/concurrent/ClosingFuture;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 4 1 function Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction<-TV;TU;>;
0 4 2 executor Ljava/util/concurrent/Executor;
3 4 3 applyFunction Lcom/google/common/util/concurrent/AsyncFunction<TV;TU;>;
Signature: <U:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction<-TV;TU;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TU;>;
MethodParameters:
Name Flags
function final
executor
public static <V, U> com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction<V, U> withoutCloser(com.google.common.util.concurrent.AsyncFunction<V, U>);
descriptor: (Lcom/google/common/util/concurrent/AsyncFunction;)Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new com.google.common.util.concurrent.ClosingFuture$5
dup
aload 0
invokespecial com.google.common.util.concurrent.ClosingFuture$5.<init>:(Lcom/google/common/util/concurrent/AsyncFunction;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 function Lcom/google/common/util/concurrent/AsyncFunction<TV;TU;>;
Signature: <V:Ljava/lang/Object;U:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/AsyncFunction<TV;TU;>;)Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction<TV;TU;>;
MethodParameters:
Name Flags
function final
public <X extends java.lang.Throwable> com.google.common.util.concurrent.ClosingFuture<V> catching(java.lang.Class<X>, com.google.common.util.concurrent.ClosingFuture$ClosingFunction<? super X, ? extends V>, java.util.concurrent.Executor);
descriptor: (Ljava/lang/Class;Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual com.google.common.util.concurrent.ClosingFuture.catchingMoreGeneric:(Ljava/lang/Class;Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
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/util/concurrent/ClosingFuture<TV;>;
0 1 1 exceptionType Ljava/lang/Class<TX;>;
0 1 2 fallback Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction<-TX;+TV;>;
0 1 3 executor Ljava/util/concurrent/Executor;
Signature: <X:Ljava/lang/Throwable;>(Ljava/lang/Class<TX;>;Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction<-TX;+TV;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
exceptionType
fallback
executor
private <X extends java.lang.Throwable, W extends V> com.google.common.util.concurrent.ClosingFuture<V> catchingMoreGeneric(java.lang.Class<X>, com.google.common.util.concurrent.ClosingFuture$ClosingFunction<? super X, W>, java.util.concurrent.Executor);
descriptor: (Ljava/lang/Class;Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new com.google.common.util.concurrent.ClosingFuture$6
dup
aload 0
aload 2
invokespecial com.google.common.util.concurrent.ClosingFuture$6.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction;)V
2: astore 4
start local 4 3: aload 0
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
aload 1
aload 4
aload 3
invokevirtual com.google.common.util.concurrent.FluentFuture.catchingAsync:(Ljava/lang/Class;Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/FluentFuture;
invokevirtual com.google.common.util.concurrent.ClosingFuture.derive:(Lcom/google/common/util/concurrent/FluentFuture;)Lcom/google/common/util/concurrent/ClosingFuture;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 4 1 exceptionType Ljava/lang/Class<TX;>;
0 4 2 fallback Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction<-TX;TW;>;
0 4 3 executor Ljava/util/concurrent/Executor;
3 4 4 applyFallback Lcom/google/common/util/concurrent/AsyncFunction<TX;TW;>;
Signature: <X:Ljava/lang/Throwable;W:TV;>(Ljava/lang/Class<TX;>;Lcom/google/common/util/concurrent/ClosingFuture$ClosingFunction<-TX;TW;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
exceptionType
fallback final
executor
public <X extends java.lang.Throwable> com.google.common.util.concurrent.ClosingFuture<V> catchingAsync(java.lang.Class<X>, com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction<? super X, ? extends V>, java.util.concurrent.Executor);
descriptor: (Ljava/lang/Class;Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual com.google.common.util.concurrent.ClosingFuture.catchingAsyncMoreGeneric:(Ljava/lang/Class;Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
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/util/concurrent/ClosingFuture<TV;>;
0 1 1 exceptionType Ljava/lang/Class<TX;>;
0 1 2 fallback Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction<-TX;+TV;>;
0 1 3 executor Ljava/util/concurrent/Executor;
Signature: <X:Ljava/lang/Throwable;>(Ljava/lang/Class<TX;>;Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction<-TX;+TV;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
exceptionType
fallback
executor
private <X extends java.lang.Throwable, W extends V> com.google.common.util.concurrent.ClosingFuture<V> catchingAsyncMoreGeneric(java.lang.Class<X>, com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction<? super X, W>, java.util.concurrent.Executor);
descriptor: (Ljava/lang/Class;Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new com.google.common.util.concurrent.ClosingFuture$7
dup
aload 0
aload 2
invokespecial com.google.common.util.concurrent.ClosingFuture$7.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction;)V
2: astore 4
start local 4 3: aload 0
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
aload 1
aload 4
aload 3
invokevirtual com.google.common.util.concurrent.FluentFuture.catchingAsync:(Ljava/lang/Class;Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/FluentFuture;
invokevirtual com.google.common.util.concurrent.ClosingFuture.derive:(Lcom/google/common/util/concurrent/FluentFuture;)Lcom/google/common/util/concurrent/ClosingFuture;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 4 1 exceptionType Ljava/lang/Class<TX;>;
0 4 2 fallback Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction<-TX;TW;>;
0 4 3 executor Ljava/util/concurrent/Executor;
3 4 4 asyncFunction Lcom/google/common/util/concurrent/AsyncFunction<TX;TW;>;
Signature: <X:Ljava/lang/Throwable;W:TV;>(Ljava/lang/Class<TX;>;Lcom/google/common/util/concurrent/ClosingFuture$AsyncClosingFunction<-TX;TW;>;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
MethodParameters:
Name Flags
exceptionType
fallback final
executor
public com.google.common.util.concurrent.FluentFuture<V> finishToFuture();
descriptor: ()Lcom/google/common/util/concurrent/FluentFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.OPEN:Lcom/google/common/util/concurrent/ClosingFuture$State;
getstatic com.google.common.util.concurrent.ClosingFuture$State.WILL_CLOSE:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture.compareAndUpdateState:(Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)Z
ifeq 7
1: getstatic com.google.common.util.concurrent.ClosingFuture.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
ldc "will close {0}"
aload 0
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
2: aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
3: new com.google.common.util.concurrent.ClosingFuture$8
dup
aload 0
invokespecial com.google.common.util.concurrent.ClosingFuture$8.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;)V
4: invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
5: invokevirtual com.google.common.util.concurrent.FluentFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
6: goto 16
7: StackMap locals:
StackMap stack:
invokestatic com.google.common.util.concurrent.ClosingFuture.$SWITCH_TABLE$com$google$common$util$concurrent$ClosingFuture$State:()[I
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.ClosingFuture$State
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 15
2: 8
3: 14
4: 14
5: 14
6: 11
default: 16
}
8: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
9: ldc "Cannot call finishToFuture() after deriving another step"
10: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
12: ldc "Cannot call finishToFuture() after calling finishToValueAndCloser()"
13: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Cannot call finishToFuture() twice"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
Signature: ()Lcom/google/common/util/concurrent/FluentFuture<TV;>;
public void finishToValueAndCloser(com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer<? super V>, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer;Ljava/util/concurrent/Executor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.OPEN:Lcom/google/common/util/concurrent/ClosingFuture$State;
getstatic com.google.common.util.concurrent.ClosingFuture$State.WILL_CREATE_VALUE_AND_CLOSER:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture.compareAndUpdateState:(Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)Z
ifne 11
2: invokestatic com.google.common.util.concurrent.ClosingFuture.$SWITCH_TABLE$com$google$common$util$concurrent$ClosingFuture$State:()[I
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.ClosingFuture$State
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 10
2: 3
3: 6
4: 6
5: 6
6: 9
default: 10
}
3: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
4: ldc "Cannot call finishToValueAndCloser() after deriving another step"
5: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
7: ldc "Cannot call finishToValueAndCloser() after calling finishToFuture()"
8: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Cannot call finishToValueAndCloser() twice"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
12: new com.google.common.util.concurrent.ClosingFuture$9
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$9.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer;)V
13: aload 2
14: invokevirtual com.google.common.util.concurrent.FluentFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 16 1 consumer Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer<-TV;>;
0 16 2 executor Ljava/util/concurrent/Executor;
Signature: (Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer<-TV;>;Ljava/util/concurrent/Executor;)V
MethodParameters:
Name Flags
consumer final
executor
private static <C, V extends C> void provideValueAndCloser(com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer<C>, com.google.common.util.concurrent.ClosingFuture<V>);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer;Lcom/google/common/util/concurrent/ClosingFuture;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new com.google.common.util.concurrent.ClosingFuture$ValueAndCloser
dup
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture$ValueAndCloser.<init>:(Lcom/google/common/util/concurrent/ClosingFuture;)V
invokeinterface com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer.accept:(Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloser;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 consumer Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer<TC;>;
0 2 1 closingFuture Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
Signature: <C:Ljava/lang/Object;V:TC;>(Lcom/google/common/util/concurrent/ClosingFuture$ValueAndCloserConsumer<TC;>;Lcom/google/common/util/concurrent/ClosingFuture<TV;>;)V
MethodParameters:
Name Flags
consumer
closingFuture
public boolean cancel(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.common.util.concurrent.ClosingFuture.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
ldc "cancelling {0}"
aload 0
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
iload 1
invokevirtual com.google.common.util.concurrent.FluentFuture.cancel:(Z)Z
istore 2
start local 2 2: iload 2
ifeq 4
3: aload 0
invokevirtual com.google.common.util.concurrent.ClosingFuture.close:()V
4: StackMap locals: int
StackMap stack:
iload 2
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/ClosingFuture<TV;>;
0 5 1 mayInterruptIfRunning Z
2 5 2 cancelled Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
mayInterruptIfRunning
private void close();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic com.google.common.util.concurrent.ClosingFuture.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
ldc "closing {0}"
aload 0
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
getfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
invokevirtual com.google.common.util.concurrent.ClosingFuture$CloseableList.close:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
private <U> com.google.common.util.concurrent.ClosingFuture<U> derive(com.google.common.util.concurrent.FluentFuture<U>);
descriptor: (Lcom/google/common/util/concurrent/FluentFuture;)Lcom/google/common/util/concurrent/ClosingFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new com.google.common.util.concurrent.ClosingFuture
dup
aload 1
invokespecial com.google.common.util.concurrent.ClosingFuture.<init>:(Lcom/google/common/util/concurrent/ListenableFuture;)V
astore 2
start local 2 1: aload 0
aload 2
getfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
invokevirtual com.google.common.util.concurrent.ClosingFuture.becomeSubsumedInto:(Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 3 1 future Lcom/google/common/util/concurrent/FluentFuture<TU;>;
1 3 2 derived Lcom/google/common/util/concurrent/ClosingFuture<TU;>;
Signature: <U:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/FluentFuture<TU;>;)Lcom/google/common/util/concurrent/ClosingFuture<TU;>;
MethodParameters:
Name Flags
future
private void becomeSubsumedInto(com.google.common.util.concurrent.ClosingFuture$CloseableList);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.OPEN:Lcom/google/common/util/concurrent/ClosingFuture$State;
getstatic com.google.common.util.concurrent.ClosingFuture$State.SUBSUMED:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture.checkAndUpdateState:(Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)V
1: aload 1
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
invokevirtual com.google.common.util.concurrent.ClosingFuture$CloseableList.add:(Ljava/lang/AutoCloseable;Ljava/util/concurrent/Executor;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 3 1 otherCloseables Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
MethodParameters:
Name Flags
otherCloseables
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.google.common.base.MoreObjects.toStringHelper:(Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
ldc "state"
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
invokevirtual com.google.common.base.MoreObjects$ToStringHelper.add:(Ljava/lang/String;Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
aload 0
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
invokevirtual com.google.common.base.MoreObjects$ToStringHelper.addValue:(Ljava/lang/Object;)Lcom/google/common/base/MoreObjects$ToStringHelper;
invokevirtual com.google.common.base.MoreObjects$ToStringHelper.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.ClosingFuture$State
getstatic com.google.common.util.concurrent.ClosingFuture$State.OPEN:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.equals:(Ljava/lang/Object;)Z
ifeq 3
1: getstatic com.google.common.util.concurrent.ClosingFuture.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
ldc "Uh oh! An open ClosingFuture has leaked and will close: {0}"
aload 0
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
2: aload 0
invokevirtual com.google.common.util.concurrent.ClosingFuture.finishToFuture:()Lcom/google/common/util/concurrent/FluentFuture;
pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
private static void closeQuietly(java.lang.AutoCloseable, java.util.concurrent.Executor);
descriptor: (Ljava/lang/AutoCloseable;Ljava/util/concurrent/Executor;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
3: new com.google.common.util.concurrent.ClosingFuture$10
dup
aload 0
invokespecial com.google.common.util.concurrent.ClosingFuture$10.<init>:(Ljava/lang/AutoCloseable;)V
4: invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
5: goto 12
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
6: astore 2
start local 2 7: getstatic com.google.common.util.concurrent.ClosingFuture.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 11
8: getstatic com.google.common.util.concurrent.ClosingFuture.logger:Ljava/util/logging/Logger;
9: getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
ldc "while submitting close to %s; will close inline"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 2
10: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
11: StackMap locals: java.util.concurrent.RejectedExecutionException
StackMap stack:
aload 0
invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
invokestatic com.google.common.util.concurrent.ClosingFuture.closeQuietly:(Ljava/lang/AutoCloseable;Ljava/util/concurrent/Executor;)V
end local 2 12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 closeable Ljava/lang/AutoCloseable;
0 13 1 executor Ljava/util/concurrent/Executor;
7 12 2 e Ljava/util/concurrent/RejectedExecutionException;
Exception table:
from to target type
2 5 6 Class java.util.concurrent.RejectedExecutionException
MethodParameters:
Name Flags
closeable final
executor
private void checkAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State, com.google.common.util.concurrent.ClosingFuture$State);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual com.google.common.util.concurrent.ClosingFuture.compareAndUpdateState:(Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)Z
1: ldc "Expected state to be %s, but it was %s"
2: aload 1
3: aload 2
4: invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 6 1 oldState Lcom/google/common/util/concurrent/ClosingFuture$State;
0 6 2 newState Lcom/google/common/util/concurrent/ClosingFuture$State;
Signature: (Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)V
MethodParameters:
Name Flags
oldState
newState
private boolean compareAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State, com.google.common.util.concurrent.ClosingFuture$State);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.util.concurrent.ClosingFuture.state:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
0 1 1 oldState Lcom/google/common/util/concurrent/ClosingFuture$State;
0 1 2 newState Lcom/google/common/util/concurrent/ClosingFuture$State;
Signature: (Lcom/google/common/util/concurrent/ClosingFuture$State;Lcom/google/common/util/concurrent/ClosingFuture$State;)Z
MethodParameters:
Name Flags
oldState
newState
java.util.concurrent.CountDownLatch whenClosedCountDown();
descriptor: ()Ljava/util/concurrent/CountDownLatch;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ClosingFuture.closeables:Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
invokevirtual com.google.common.util.concurrent.ClosingFuture$CloseableList.whenClosedCountDown:()Ljava/util/concurrent/CountDownLatch;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
static int[] $SWITCH_TABLE$com$google$common$util$concurrent$ClosingFuture$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.google.common.util.concurrent.ClosingFuture.$SWITCH_TABLE$com$google$common$util$concurrent$ClosingFuture$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.google.common.util.concurrent.ClosingFuture$State.values:()[Lcom/google/common/util/concurrent/ClosingFuture$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.CLOSED:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
iconst_5
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.CLOSING:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
iconst_4
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.OPEN:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.SUBSUMED:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
iconst_2
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.WILL_CLOSE:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
iconst_3
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic com.google.common.util.concurrent.ClosingFuture$State.WILL_CREATE_VALUE_AND_CLOSER:Lcom/google/common/util/concurrent/ClosingFuture$State;
invokevirtual com.google.common.util.concurrent.ClosingFuture$State.ordinal:()I
bipush 6
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic com.google.common.util.concurrent.ClosingFuture.$SWITCH_TABLE$com$google$common$util$concurrent$ClosingFuture$State:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
}
Signature: <V:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ClosingFuture.java"
NestMembers:
com.google.common.util.concurrent.ClosingFuture$1 com.google.common.util.concurrent.ClosingFuture$10 com.google.common.util.concurrent.ClosingFuture$2 com.google.common.util.concurrent.ClosingFuture$3 com.google.common.util.concurrent.ClosingFuture$4 com.google.common.util.concurrent.ClosingFuture$5 com.google.common.util.concurrent.ClosingFuture$6 com.google.common.util.concurrent.ClosingFuture$7 com.google.common.util.concurrent.ClosingFuture$8 com.google.common.util.concurrent.ClosingFuture$9 com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction com.google.common.util.concurrent.ClosingFuture$CloseableList com.google.common.util.concurrent.ClosingFuture$ClosingCallable com.google.common.util.concurrent.ClosingFuture$ClosingFunction com.google.common.util.concurrent.ClosingFuture$Combiner com.google.common.util.concurrent.ClosingFuture$Combiner$1 com.google.common.util.concurrent.ClosingFuture$Combiner$2 com.google.common.util.concurrent.ClosingFuture$Combiner$3 com.google.common.util.concurrent.ClosingFuture$Combiner$AsyncCombiningCallable com.google.common.util.concurrent.ClosingFuture$Combiner$CombiningCallable com.google.common.util.concurrent.ClosingFuture$Combiner2 com.google.common.util.concurrent.ClosingFuture$Combiner2$1 com.google.common.util.concurrent.ClosingFuture$Combiner2$2 com.google.common.util.concurrent.ClosingFuture$Combiner2$AsyncClosingFunction2 com.google.common.util.concurrent.ClosingFuture$Combiner2$ClosingFunction2 com.google.common.util.concurrent.ClosingFuture$Combiner3 com.google.common.util.concurrent.ClosingFuture$Combiner3$1 com.google.common.util.concurrent.ClosingFuture$Combiner3$2 com.google.common.util.concurrent.ClosingFuture$Combiner3$AsyncClosingFunction3 com.google.common.util.concurrent.ClosingFuture$Combiner3$ClosingFunction3 com.google.common.util.concurrent.ClosingFuture$Combiner4 com.google.common.util.concurrent.ClosingFuture$Combiner4$1 com.google.common.util.concurrent.ClosingFuture$Combiner4$2 com.google.common.util.concurrent.ClosingFuture$Combiner4$AsyncClosingFunction4 com.google.common.util.concurrent.ClosingFuture$Combiner4$ClosingFunction4 com.google.common.util.concurrent.ClosingFuture$Combiner5 com.google.common.util.concurrent.ClosingFuture$Combiner5$1 com.google.common.util.concurrent.ClosingFuture$Combiner5$2 com.google.common.util.concurrent.ClosingFuture$Combiner5$AsyncClosingFunction5 com.google.common.util.concurrent.ClosingFuture$Combiner5$ClosingFunction5 com.google.common.util.concurrent.ClosingFuture$DeferredCloser com.google.common.util.concurrent.ClosingFuture$Peeker com.google.common.util.concurrent.ClosingFuture$State com.google.common.util.concurrent.ClosingFuture$ValueAndCloser com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer
InnerClasses:
public final ToStringHelper = com.google.common.base.MoreObjects$ToStringHelper of com.google.common.base.MoreObjects
com.google.common.util.concurrent.ClosingFuture$1
com.google.common.util.concurrent.ClosingFuture$10
com.google.common.util.concurrent.ClosingFuture$2
com.google.common.util.concurrent.ClosingFuture$3
com.google.common.util.concurrent.ClosingFuture$4
com.google.common.util.concurrent.ClosingFuture$5
com.google.common.util.concurrent.ClosingFuture$6
com.google.common.util.concurrent.ClosingFuture$7
com.google.common.util.concurrent.ClosingFuture$8
com.google.common.util.concurrent.ClosingFuture$9
public abstract AsyncClosingFunction = com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction of com.google.common.util.concurrent.ClosingFuture
private final CloseableList = com.google.common.util.concurrent.ClosingFuture$CloseableList of com.google.common.util.concurrent.ClosingFuture
public abstract ClosingCallable = com.google.common.util.concurrent.ClosingFuture$ClosingCallable of com.google.common.util.concurrent.ClosingFuture
public abstract ClosingFunction = com.google.common.util.concurrent.ClosingFuture$ClosingFunction of com.google.common.util.concurrent.ClosingFuture
public Combiner = com.google.common.util.concurrent.ClosingFuture$Combiner of com.google.common.util.concurrent.ClosingFuture
public final Combiner2 = com.google.common.util.concurrent.ClosingFuture$Combiner2 of com.google.common.util.concurrent.ClosingFuture
public final Combiner3 = com.google.common.util.concurrent.ClosingFuture$Combiner3 of com.google.common.util.concurrent.ClosingFuture
public final Combiner4 = com.google.common.util.concurrent.ClosingFuture$Combiner4 of com.google.common.util.concurrent.ClosingFuture
public final Combiner5 = com.google.common.util.concurrent.ClosingFuture$Combiner5 of com.google.common.util.concurrent.ClosingFuture
public final DeferredCloser = com.google.common.util.concurrent.ClosingFuture$DeferredCloser of com.google.common.util.concurrent.ClosingFuture
public final Peeker = com.google.common.util.concurrent.ClosingFuture$Peeker of com.google.common.util.concurrent.ClosingFuture
final State = com.google.common.util.concurrent.ClosingFuture$State of com.google.common.util.concurrent.ClosingFuture
public final ValueAndCloser = com.google.common.util.concurrent.ClosingFuture$ValueAndCloser of com.google.common.util.concurrent.ClosingFuture
public abstract ValueAndCloserConsumer = com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer of com.google.common.util.concurrent.ClosingFuture
RuntimeVisibleAnnotations:
com.google.errorprone.annotations.DoNotMock(value = "Use ClosingFuture.from(Futures.immediate*Future)")
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()