public final class com.google.common.util.concurrent.ClosingFuture$Peeker
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.util.concurrent.ClosingFuture$Peeker
super_class: java.lang.Object
{
private final com.google.common.collect.ImmutableList<com.google.common.util.concurrent.ClosingFuture<?>> futures;
descriptor: Lcom/google/common/collect/ImmutableList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/collect/ImmutableList<Lcom/google/common/util/concurrent/ClosingFuture<*>;>;
private volatile boolean beingCalled;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private void <init>(com.google.common.collect.ImmutableList<com.google.common.util.concurrent.ClosingFuture<?>>);
descriptor: (Lcom/google/common/collect/ImmutableList;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.collect.ImmutableList
putfield com.google.common.util.concurrent.ClosingFuture$Peeker.futures:Lcom/google/common/collect/ImmutableList;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/ClosingFuture$Peeker;
0 3 1 futures Lcom/google/common/collect/ImmutableList<Lcom/google/common/util/concurrent/ClosingFuture<*>;>;
Signature: (Lcom/google/common/collect/ImmutableList<Lcom/google/common/util/concurrent/ClosingFuture<*>;>;)V
MethodParameters:
Name Flags
futures
public final <D> D getDone(com.google.common.util.concurrent.ClosingFuture<D>);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.util.concurrent.ClosingFuture$Peeker.beingCalled:Z
invokestatic com.google.common.base.Preconditions.checkState:(Z)V
1: aload 0
getfield com.google.common.util.concurrent.ClosingFuture$Peeker.futures:Lcom/google/common/collect/ImmutableList;
aload 1
invokevirtual com.google.common.collect.ImmutableList.contains:(Ljava/lang/Object;)Z
invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
2: aload 1
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/ClosingFuture$Peeker;
0 3 1 closingFuture Lcom/google/common/util/concurrent/ClosingFuture<TD;>;
Exceptions:
throws java.util.concurrent.ExecutionException
Signature: <D:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture<TD;>;)TD;
RuntimeVisibleTypeAnnotations:
METHOD_TYPE_PARAMETER_BOUND
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
closingFuture
private <V> V call(com.google.common.util.concurrent.ClosingFuture$Combiner$CombiningCallable<V>, com.google.common.util.concurrent.ClosingFuture$CloseableList);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$Combiner$CombiningCallable;Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
putfield com.google.common.util.concurrent.ClosingFuture$Peeker.beingCalled:Z
1: new com.google.common.util.concurrent.ClosingFuture$CloseableList
dup
invokespecial com.google.common.util.concurrent.ClosingFuture$CloseableList.<init>:()V
astore 3
start local 3 2: aload 1
aload 3
getfield com.google.common.util.concurrent.ClosingFuture$CloseableList.closer:Lcom/google/common/util/concurrent/ClosingFuture$DeferredCloser;
aload 0
invokeinterface com.google.common.util.concurrent.ClosingFuture$Combiner$CombiningCallable.call:(Lcom/google/common/util/concurrent/ClosingFuture$DeferredCloser;Lcom/google/common/util/concurrent/ClosingFuture$Peeker;)Ljava/lang/Object;
astore 5
3: aload 2
aload 3
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
4: aload 0
iconst_0
putfield com.google.common.util.concurrent.ClosingFuture$Peeker.beingCalled:Z
5: aload 5
areturn
6: StackMap locals: com.google.common.util.concurrent.ClosingFuture$Peeker com.google.common.util.concurrent.ClosingFuture$Combiner$CombiningCallable com.google.common.util.concurrent.ClosingFuture$CloseableList com.google.common.util.concurrent.ClosingFuture$CloseableList
StackMap stack: java.lang.Throwable
astore 4
7: aload 2
aload 3
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
8: aload 0
iconst_0
putfield com.google.common.util.concurrent.ClosingFuture$Peeker.beingCalled:Z
9: aload 4
athrow
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$Peeker;
0 10 1 combiner Lcom/google/common/util/concurrent/ClosingFuture$Combiner$CombiningCallable<TV;>;
0 10 2 closeables Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
2 10 3 newCloseables Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
Exception table:
from to target type
2 3 6 any
Exceptions:
throws java.lang.Exception
Signature: <V:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture$Combiner$CombiningCallable<TV;>;Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)TV;
RuntimeVisibleTypeAnnotations:
METHOD_TYPE_PARAMETER_BOUND
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
combiner
closeables
private <V> com.google.common.util.concurrent.FluentFuture<V> callAsync(com.google.common.util.concurrent.ClosingFuture$Combiner$AsyncCombiningCallable<V>, com.google.common.util.concurrent.ClosingFuture$CloseableList);
descriptor: (Lcom/google/common/util/concurrent/ClosingFuture$Combiner$AsyncCombiningCallable;Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)Lcom/google/common/util/concurrent/FluentFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
putfield com.google.common.util.concurrent.ClosingFuture$Peeker.beingCalled:Z
1: new com.google.common.util.concurrent.ClosingFuture$CloseableList
dup
invokespecial com.google.common.util.concurrent.ClosingFuture$CloseableList.<init>:()V
astore 3
start local 3 2: aload 1
aload 3
getfield com.google.common.util.concurrent.ClosingFuture$CloseableList.closer:Lcom/google/common/util/concurrent/ClosingFuture$DeferredCloser;
aload 0
invokeinterface com.google.common.util.concurrent.ClosingFuture$Combiner$AsyncCombiningCallable.call:(Lcom/google/common/util/concurrent/ClosingFuture$DeferredCloser;Lcom/google/common/util/concurrent/ClosingFuture$Peeker;)Lcom/google/common/util/concurrent/ClosingFuture;
astore 4
start local 4 3: aload 4
aload 2
invokevirtual com.google.common.util.concurrent.ClosingFuture.becomeSubsumedInto:(Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)V
4: aload 4
getfield com.google.common.util.concurrent.ClosingFuture.future:Lcom/google/common/util/concurrent/FluentFuture;
astore 6
5: aload 2
aload 3
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
6: aload 0
iconst_0
putfield com.google.common.util.concurrent.ClosingFuture$Peeker.beingCalled:Z
7: aload 6
areturn
end local 4 8: StackMap locals: com.google.common.util.concurrent.ClosingFuture$Peeker com.google.common.util.concurrent.ClosingFuture$Combiner$AsyncCombiningCallable com.google.common.util.concurrent.ClosingFuture$CloseableList com.google.common.util.concurrent.ClosingFuture$CloseableList
StackMap stack: java.lang.Throwable
astore 5
9: aload 2
aload 3
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
10: aload 0
iconst_0
putfield com.google.common.util.concurrent.ClosingFuture$Peeker.beingCalled:Z
11: aload 5
athrow
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/ClosingFuture$Peeker;
0 12 1 combiner Lcom/google/common/util/concurrent/ClosingFuture$Combiner$AsyncCombiningCallable<TV;>;
0 12 2 closeables Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
2 12 3 newCloseables Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;
3 8 4 closingFuture Lcom/google/common/util/concurrent/ClosingFuture<TV;>;
Exception table:
from to target type
2 5 8 any
Exceptions:
throws java.lang.Exception
Signature: <V:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ClosingFuture$Combiner$AsyncCombiningCallable<TV;>;Lcom/google/common/util/concurrent/ClosingFuture$CloseableList;)Lcom/google/common/util/concurrent/FluentFuture<TV;>;
RuntimeVisibleTypeAnnotations:
METHOD_TYPE_PARAMETER_BOUND
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
combiner
closeables
}
SourceFile: "ClosingFuture.java"
NestHost: com.google.common.util.concurrent.ClosingFuture
InnerClasses:
private final CloseableList = com.google.common.util.concurrent.ClosingFuture$CloseableList of com.google.common.util.concurrent.ClosingFuture
public Combiner = com.google.common.util.concurrent.ClosingFuture$Combiner of com.google.common.util.concurrent.ClosingFuture
public abstract AsyncCombiningCallable = com.google.common.util.concurrent.ClosingFuture$Combiner$AsyncCombiningCallable of com.google.common.util.concurrent.ClosingFuture$Combiner
public abstract CombiningCallable = com.google.common.util.concurrent.ClosingFuture$Combiner$CombiningCallable of com.google.common.util.concurrent.ClosingFuture$Combiner
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