public final class com.google.common.util.concurrent.ClosingFuture extends java.lang.Object
{
private static final java.util.logging.Logger logger;
private final java.util.concurrent.atomic.AtomicReference state;
private final com.google.common.util.concurrent.ClosingFuture$CloseableList closeables;
private final com.google.common.util.concurrent.FluentFuture future;
public static com.google.common.util.concurrent.ClosingFuture submit(com.google.common.util.concurrent.ClosingFuture$ClosingCallable, java.util.concurrent.Executor)
{
com.google.common.util.concurrent.ClosingFuture$ClosingCallable v;
com.google.common.util.concurrent.ClosingFuture v;
java.util.concurrent.Executor v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$ClosingCallable;
v := @parameter: java.util.concurrent.Executor;
v = new com.google.common.util.concurrent.ClosingFuture;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void <init>(com.google.common.util.concurrent.ClosingFuture$ClosingCallable,java.util.concurrent.Executor)>(v, v);
return v;
}
public static com.google.common.util.concurrent.ClosingFuture submitAsync(com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable, java.util.concurrent.Executor)
{
com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable v;
com.google.common.util.concurrent.ClosingFuture v;
java.util.concurrent.Executor v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable;
v := @parameter: java.util.concurrent.Executor;
v = new com.google.common.util.concurrent.ClosingFuture;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void <init>(com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable,java.util.concurrent.Executor)>(v, v);
return v;
}
public static com.google.common.util.concurrent.ClosingFuture 'from'(com.google.common.util.concurrent.ListenableFuture)
{
com.google.common.util.concurrent.ClosingFuture v;
com.google.common.util.concurrent.ListenableFuture v;
v := @parameter: com.google.common.util.concurrent.ListenableFuture;
v = new com.google.common.util.concurrent.ClosingFuture;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void <init>(com.google.common.util.concurrent.ListenableFuture)>(v);
return v;
}
public static com.google.common.util.concurrent.ClosingFuture eventuallyClosing(com.google.common.util.concurrent.ListenableFuture, java.util.concurrent.Executor)
{
com.google.common.util.concurrent.ListenableFuture v, v;
java.util.concurrent.Executor v, v;
com.google.common.util.concurrent.ClosingFuture$1 v;
com.google.common.util.concurrent.ClosingFuture v;
v := @parameter: com.google.common.util.concurrent.ListenableFuture;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture;
v = staticinvoke <com.google.common.util.concurrent.Futures: com.google.common.util.concurrent.ListenableFuture nonCancellationPropagating(com.google.common.util.concurrent.ListenableFuture)>(v);
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void <init>(com.google.common.util.concurrent.ListenableFuture)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$1;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$1: void <init>(com.google.common.util.concurrent.ClosingFuture,java.util.concurrent.Executor)>(v, v);
v = staticinvoke <com.google.common.util.concurrent.MoreExecutors: java.util.concurrent.Executor directExecutor()>();
staticinvoke <com.google.common.util.concurrent.Futures: void addCallback(com.google.common.util.concurrent.ListenableFuture,com.google.common.util.concurrent.FutureCallback,java.util.concurrent.Executor)>(v, v, v);
return v;
}
public static com.google.common.util.concurrent.ClosingFuture$Combiner whenAllComplete(java.lang.Iterable)
{
com.google.common.util.concurrent.ClosingFuture$Combiner v;
java.lang.Iterable v;
v := @parameter: java.lang.Iterable;
v = new com.google.common.util.concurrent.ClosingFuture$Combiner;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$Combiner: void <init>(boolean,java.lang.Iterable)>(0, v);
return v;
}
public static transient com.google.common.util.concurrent.ClosingFuture$Combiner whenAllComplete(com.google.common.util.concurrent.ClosingFuture, com.google.common.util.concurrent.ClosingFuture[])
{
java.util.List v;
com.google.common.util.concurrent.ClosingFuture v;
com.google.common.util.concurrent.ClosingFuture$Combiner v;
com.google.common.util.concurrent.ClosingFuture[] v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture[];
v = staticinvoke <com.google.common.collect.Lists: java.util.List asList(java.lang.Object,java.lang.Object[])>(v, v);
v = staticinvoke <com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$Combiner whenAllComplete(java.lang.Iterable)>(v);
return v;
}
public static com.google.common.util.concurrent.ClosingFuture$Combiner whenAllSucceed(java.lang.Iterable)
{
com.google.common.util.concurrent.ClosingFuture$Combiner v;
java.lang.Iterable v;
v := @parameter: java.lang.Iterable;
v = new com.google.common.util.concurrent.ClosingFuture$Combiner;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$Combiner: void <init>(boolean,java.lang.Iterable)>(1, v);
return v;
}
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$Combiner v;
com.google.common.util.concurrent.ClosingFuture v, v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v = new com.google.common.util.concurrent.ClosingFuture$Combiner;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$Combiner2: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture)>(v, v);
return v;
}
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$Combiner v;
com.google.common.util.concurrent.ClosingFuture v, v, v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v = new com.google.common.util.concurrent.ClosingFuture$Combiner;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$Combiner3: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture)>(v, v, v);
return v;
}
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$Combiner v;
com.google.common.util.concurrent.ClosingFuture v, v, v, v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v = new com.google.common.util.concurrent.ClosingFuture$Combiner;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$Combiner4: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture)>(v, v, v, v);
return v;
}
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$Combiner v;
com.google.common.util.concurrent.ClosingFuture v, v, v, v, v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v = new com.google.common.util.concurrent.ClosingFuture$Combiner;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$Combiner5: void <init>(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)>(v, v, v, v, v);
return v;
}
public static transient 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[])
{
com.google.common.util.concurrent.ClosingFuture$Combiner v;
com.google.common.util.concurrent.ClosingFuture[] v, v;
com.google.common.collect.FluentIterable v, v;
com.google.common.util.concurrent.ClosingFuture v, v, v, v, v, v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture[];
v = newarray (com.google.common.util.concurrent.ClosingFuture)[5];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v[4] = v;
v = staticinvoke <com.google.common.collect.FluentIterable: com.google.common.collect.FluentIterable of(java.lang.Object,java.lang.Object[])>(v, v);
v = virtualinvoke v.<com.google.common.collect.FluentIterable: com.google.common.collect.FluentIterable append(java.lang.Object[])>(v);
v = staticinvoke <com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$Combiner whenAllSucceed(java.lang.Iterable)>(v);
return v;
}
private void <init>(com.google.common.util.concurrent.ListenableFuture)
{
com.google.common.util.concurrent.ClosingFuture$CloseableList v;
com.google.common.util.concurrent.ListenableFuture v;
com.google.common.util.concurrent.ClosingFuture$State v;
com.google.common.util.concurrent.ClosingFuture v;
java.util.concurrent.atomic.AtomicReference v;
com.google.common.util.concurrent.FluentFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ListenableFuture;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReference;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State OPEN>;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state> = v;
v = new com.google.common.util.concurrent.ClosingFuture$CloseableList;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$CloseableList: void <init>()>();
v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$CloseableList closeables> = v;
v = staticinvoke <com.google.common.util.concurrent.FluentFuture: com.google.common.util.concurrent.FluentFuture 'from'(com.google.common.util.concurrent.ListenableFuture)>(v);
v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future> = v;
return;
}
private void <init>(com.google.common.util.concurrent.ClosingFuture$ClosingCallable, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$State v;
com.google.common.util.concurrent.ClosingFuture$ClosingCallable v;
java.util.concurrent.atomic.AtomicReference v;
com.google.common.util.concurrent.ClosingFuture$CloseableList v;
com.google.common.util.concurrent.ClosingFuture$2 v;
com.google.common.util.concurrent.TrustedListenableFutureTask v;
com.google.common.util.concurrent.ClosingFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$ClosingCallable;
v := @parameter: java.util.concurrent.Executor;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReference;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State OPEN>;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state> = v;
v = new com.google.common.util.concurrent.ClosingFuture$CloseableList;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$CloseableList: void <init>()>();
v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$CloseableList closeables> = v;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$2;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$2: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture$ClosingCallable)>(v, v);
v = staticinvoke <com.google.common.util.concurrent.TrustedListenableFutureTask: com.google.common.util.concurrent.TrustedListenableFutureTask create(java.util.concurrent.Callable)>(v);
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future> = v;
return;
}
private void <init>(com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable, java.util.concurrent.Executor)
{
com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable v;
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$State v;
java.util.concurrent.atomic.AtomicReference v;
com.google.common.util.concurrent.ClosingFuture$CloseableList v;
com.google.common.util.concurrent.ClosingFuture$3 v;
com.google.common.util.concurrent.TrustedListenableFutureTask v;
com.google.common.util.concurrent.ClosingFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable;
v := @parameter: java.util.concurrent.Executor;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReference;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State OPEN>;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state> = v;
v = new com.google.common.util.concurrent.ClosingFuture$CloseableList;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$CloseableList: void <init>()>();
v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$CloseableList closeables> = v;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$3;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$3: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture$AsyncClosingCallable)>(v, v);
v = staticinvoke <com.google.common.util.concurrent.TrustedListenableFutureTask: com.google.common.util.concurrent.TrustedListenableFutureTask create(com.google.common.util.concurrent.AsyncCallable)>(v);
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future> = v;
return;
}
public com.google.common.util.concurrent.ListenableFuture statusFuture()
{
com.google.common.base.Function v;
com.google.common.util.concurrent.ListenableFuture v;
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture v;
com.google.common.util.concurrent.FluentFuture v, v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = staticinvoke <com.google.common.base.Functions: com.google.common.base.Function constant(java.lang.Object)>(null);
v = staticinvoke <com.google.common.util.concurrent.MoreExecutors: java.util.concurrent.Executor directExecutor()>();
v = virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: com.google.common.util.concurrent.FluentFuture transform(com.google.common.base.Function,java.util.concurrent.Executor)>(v, v);
v = staticinvoke <com.google.common.util.concurrent.Futures: com.google.common.util.concurrent.ListenableFuture nonCancellationPropagating(com.google.common.util.concurrent.ListenableFuture)>(v);
return v;
}
public com.google.common.util.concurrent.ClosingFuture transform(com.google.common.util.concurrent.ClosingFuture$ClosingFunction, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$4 v;
com.google.common.util.concurrent.ClosingFuture v, v;
com.google.common.util.concurrent.ClosingFuture$ClosingFunction v;
com.google.common.util.concurrent.FluentFuture v, v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$ClosingFunction;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$4;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$4: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture$ClosingFunction)>(v, v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: com.google.common.util.concurrent.FluentFuture transformAsync(com.google.common.util.concurrent.AsyncFunction,java.util.concurrent.Executor)>(v, v);
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture derive(com.google.common.util.concurrent.FluentFuture)>(v);
return v;
}
public com.google.common.util.concurrent.ClosingFuture transformAsync(com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction v;
com.google.common.util.concurrent.ClosingFuture$5 v;
com.google.common.util.concurrent.ClosingFuture v, v;
com.google.common.util.concurrent.FluentFuture v, v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$5;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$5: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction)>(v, v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: com.google.common.util.concurrent.FluentFuture transformAsync(com.google.common.util.concurrent.AsyncFunction,java.util.concurrent.Executor)>(v, v);
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture derive(com.google.common.util.concurrent.FluentFuture)>(v);
return v;
}
public static com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction withoutCloser(com.google.common.util.concurrent.AsyncFunction)
{
com.google.common.util.concurrent.AsyncFunction v;
com.google.common.util.concurrent.ClosingFuture$6 v;
v := @parameter: com.google.common.util.concurrent.AsyncFunction;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$6;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$6: void <init>(com.google.common.util.concurrent.AsyncFunction)>(v);
return v;
}
public com.google.common.util.concurrent.ClosingFuture catching(java.lang.Class, com.google.common.util.concurrent.ClosingFuture$ClosingFunction, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
java.lang.Class v;
com.google.common.util.concurrent.ClosingFuture v, v;
com.google.common.util.concurrent.ClosingFuture$ClosingFunction v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: java.lang.Class;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$ClosingFunction;
v := @parameter: java.util.concurrent.Executor;
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture catchingMoreGeneric(java.lang.Class,com.google.common.util.concurrent.ClosingFuture$ClosingFunction,java.util.concurrent.Executor)>(v, v, v);
return v;
}
private com.google.common.util.concurrent.ClosingFuture catchingMoreGeneric(java.lang.Class, com.google.common.util.concurrent.ClosingFuture$ClosingFunction, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
java.lang.Class v;
com.google.common.util.concurrent.ClosingFuture v, v;
com.google.common.util.concurrent.ClosingFuture$7 v;
com.google.common.util.concurrent.ClosingFuture$ClosingFunction v;
com.google.common.util.concurrent.FluentFuture v, v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: java.lang.Class;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$ClosingFunction;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$7;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$7: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture$ClosingFunction)>(v, v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: com.google.common.util.concurrent.FluentFuture catchingAsync(java.lang.Class,com.google.common.util.concurrent.AsyncFunction,java.util.concurrent.Executor)>(v, v, v);
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture derive(com.google.common.util.concurrent.FluentFuture)>(v);
return v;
}
public com.google.common.util.concurrent.ClosingFuture catchingAsync(java.lang.Class, com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction v;
java.lang.Class v;
com.google.common.util.concurrent.ClosingFuture v, v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: java.lang.Class;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction;
v := @parameter: java.util.concurrent.Executor;
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture catchingAsyncMoreGeneric(java.lang.Class,com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction,java.util.concurrent.Executor)>(v, v, v);
return v;
}
private com.google.common.util.concurrent.ClosingFuture catchingAsyncMoreGeneric(java.lang.Class, com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction v;
java.lang.Class v;
com.google.common.util.concurrent.ClosingFuture v, v;
com.google.common.util.concurrent.ClosingFuture$8 v;
com.google.common.util.concurrent.FluentFuture v, v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: java.lang.Class;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = new com.google.common.util.concurrent.ClosingFuture$8;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$8: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture$AsyncClosingFunction)>(v, v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: com.google.common.util.concurrent.FluentFuture catchingAsync(java.lang.Class,com.google.common.util.concurrent.AsyncFunction,java.util.concurrent.Executor)>(v, v, v);
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture derive(com.google.common.util.concurrent.FluentFuture)>(v);
return v;
}
public com.google.common.util.concurrent.FluentFuture finishToFuture()
{
java.lang.IllegalStateException v, v, v;
java.lang.AssertionError v;
java.util.concurrent.atomic.AtomicReference v;
java.util.logging.Level v;
int[] v;
int v, v;
com.google.common.util.concurrent.ClosingFuture$9 v;
boolean v;
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$State v, v;
java.util.logging.Logger v;
java.lang.Object v;
com.google.common.util.concurrent.ClosingFuture v;
com.google.common.util.concurrent.FluentFuture v, v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State OPEN>;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State WILL_CLOSE>;
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: boolean compareAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State,com.google.common.util.concurrent.ClosingFuture$State)>(v, v);
if v == 0 goto label;
v = <com.google.common.util.concurrent.ClosingFuture: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINER>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "will close {0}", v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = new com.google.common.util.concurrent.ClosingFuture$9;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$9: void <init>(com.google.common.util.concurrent.ClosingFuture)>(v);
v = staticinvoke <com.google.common.util.concurrent.MoreExecutors: java.util.concurrent.Executor directExecutor()>();
virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: void addListener(java.lang.Runnable,java.util.concurrent.Executor)>(v, v);
goto label;
label:
v = <com.google.common.util.concurrent.ClosingFuture$12: int[] $SwitchMap$com$google$common$util$concurrent$ClosingFuture$State>;
v = v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = virtualinvoke v.<com.google.common.util.concurrent.ClosingFuture$State: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
default: goto label;
};
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot call finishToFuture() after deriving another step");
throw v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot call finishToFuture() after calling finishToValueAndCloser()");
throw v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot call finishToFuture() twice");
throw v;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
return v;
}
public void finishToValueAndCloser(com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer, java.util.concurrent.Executor)
{
java.lang.IllegalStateException v, v, v;
com.google.common.util.concurrent.ClosingFuture$10 v;
java.lang.AssertionError v;
java.util.concurrent.atomic.AtomicReference v, v;
int[] v;
int v, v;
boolean v;
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$State v, v;
java.lang.Object v;
com.google.common.util.concurrent.ClosingFuture v;
com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer v;
com.google.common.util.concurrent.FluentFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer;
v := @parameter: java.util.concurrent.Executor;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State OPEN>;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State WILL_CREATE_VALUE_AND_CLOSER>;
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: boolean compareAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State,com.google.common.util.concurrent.ClosingFuture$State)>(v, v);
if v != 0 goto label;
v = <com.google.common.util.concurrent.ClosingFuture$12: int[] $SwitchMap$com$google$common$util$concurrent$ClosingFuture$State>;
v = v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = virtualinvoke v.<com.google.common.util.concurrent.ClosingFuture$State: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
default: goto label;
};
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot call finishToValueAndCloser() after deriving another step");
throw v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot call finishToValueAndCloser() after calling finishToFuture()");
throw v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot call finishToValueAndCloser() twice");
throw v;
label:
v = new java.lang.AssertionError;
v = v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state>;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
label:
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = new com.google.common.util.concurrent.ClosingFuture$10;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$10: void <init>(com.google.common.util.concurrent.ClosingFuture,com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer)>(v, v);
virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: void addListener(java.lang.Runnable,java.util.concurrent.Executor)>(v, v);
return;
}
private static void provideValueAndCloser(com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer, com.google.common.util.concurrent.ClosingFuture)
{
com.google.common.util.concurrent.ClosingFuture v;
com.google.common.util.concurrent.ClosingFuture$ValueAndCloser v;
com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer v;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer;
v := @parameter: com.google.common.util.concurrent.ClosingFuture;
v = new com.google.common.util.concurrent.ClosingFuture$ValueAndCloser;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$ValueAndCloser: void <init>(com.google.common.util.concurrent.ClosingFuture)>(v);
interfaceinvoke v.<com.google.common.util.concurrent.ClosingFuture$ValueAndCloserConsumer: void accept(com.google.common.util.concurrent.ClosingFuture$ValueAndCloser)>(v);
return;
}
public boolean cancel(boolean)
{
com.google.common.util.concurrent.ClosingFuture v;
java.util.logging.Logger v;
boolean v, v;
com.google.common.util.concurrent.FluentFuture v;
java.util.logging.Level v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: boolean;
v = <com.google.common.util.concurrent.ClosingFuture: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINER>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "cancelling {0}", v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = virtualinvoke v.<com.google.common.util.concurrent.FluentFuture: boolean cancel(boolean)>(v);
if v == 0 goto label;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void close()>();
label:
return v;
}
private void close()
{
com.google.common.util.concurrent.ClosingFuture$CloseableList v;
com.google.common.util.concurrent.ClosingFuture v;
java.util.logging.Logger v;
java.util.logging.Level v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v = <com.google.common.util.concurrent.ClosingFuture: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINER>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "closing {0}", v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$CloseableList closeables>;
virtualinvoke v.<com.google.common.util.concurrent.ClosingFuture$CloseableList: void close()>();
return;
}
private com.google.common.util.concurrent.ClosingFuture derive(com.google.common.util.concurrent.FluentFuture)
{
com.google.common.util.concurrent.ClosingFuture$CloseableList v;
com.google.common.util.concurrent.ClosingFuture v, v;
com.google.common.util.concurrent.FluentFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.FluentFuture;
v = new com.google.common.util.concurrent.ClosingFuture;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void <init>(com.google.common.util.concurrent.ListenableFuture)>(v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$CloseableList closeables>;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void becomeSubsumedInto(com.google.common.util.concurrent.ClosingFuture$CloseableList)>(v);
return v;
}
private void becomeSubsumedInto(com.google.common.util.concurrent.ClosingFuture$CloseableList)
{
com.google.common.util.concurrent.ClosingFuture$CloseableList v, v;
java.util.concurrent.Executor v;
com.google.common.util.concurrent.ClosingFuture$State v, v;
com.google.common.util.concurrent.ClosingFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$CloseableList;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State OPEN>;
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State SUBSUMED>;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: void checkAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State,com.google.common.util.concurrent.ClosingFuture$State)>(v, v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$CloseableList closeables>;
v = staticinvoke <com.google.common.util.concurrent.MoreExecutors: java.util.concurrent.Executor directExecutor()>();
virtualinvoke v.<com.google.common.util.concurrent.ClosingFuture$CloseableList: void add(java.lang.AutoCloseable,java.util.concurrent.Executor)>(v, v);
return;
}
public java.lang.String toString()
{
com.google.common.base.MoreObjects$ToStringHelper v, v, v;
java.util.concurrent.atomic.AtomicReference v;
java.lang.Object v;
java.lang.String v;
com.google.common.util.concurrent.ClosingFuture v;
com.google.common.util.concurrent.FluentFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v = staticinvoke <com.google.common.base.MoreObjects: com.google.common.base.MoreObjects$ToStringHelper toStringHelper(java.lang.Object)>(v);
v = v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = virtualinvoke v.<com.google.common.base.MoreObjects$ToStringHelper: com.google.common.base.MoreObjects$ToStringHelper add(java.lang.String,java.lang.Object)>("state", v);
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture future>;
v = virtualinvoke v.<com.google.common.base.MoreObjects$ToStringHelper: com.google.common.base.MoreObjects$ToStringHelper addValue(java.lang.Object)>(v);
v = virtualinvoke v.<com.google.common.base.MoreObjects$ToStringHelper: java.lang.String toString()>();
return v;
}
protected void finalize()
{
com.google.common.util.concurrent.ClosingFuture$State v;
java.lang.Object v;
com.google.common.util.concurrent.ClosingFuture v;
java.util.logging.Logger v;
java.util.concurrent.atomic.AtomicReference v;
boolean v;
java.util.logging.Level v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v = v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = <com.google.common.util.concurrent.ClosingFuture$State: com.google.common.util.concurrent.ClosingFuture$State OPEN>;
v = virtualinvoke v.<com.google.common.util.concurrent.ClosingFuture$State: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <com.google.common.util.concurrent.ClosingFuture: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "Uh oh! An open ClosingFuture has leaked and will close: {0}", v);
virtualinvoke v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.FluentFuture finishToFuture()>();
label:
return;
}
private static void closeQuietly(java.lang.AutoCloseable, java.util.concurrent.Executor)
{
com.google.common.util.concurrent.ClosingFuture$11 v;
java.lang.Object[] v;
java.util.concurrent.Executor v, v;
java.util.logging.Logger v, v;
java.lang.AutoCloseable v;
java.util.logging.Level v, v;
java.util.concurrent.RejectedExecutionException v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.AutoCloseable;
v := @parameter: java.util.concurrent.Executor;
if v != null goto label;
return;
label:
v = new com.google.common.util.concurrent.ClosingFuture$11;
specialinvoke v.<com.google.common.util.concurrent.ClosingFuture$11: void <init>(java.lang.AutoCloseable)>(v);
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <com.google.common.util.concurrent.ClosingFuture: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <com.google.common.util.concurrent.ClosingFuture: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level WARNING>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("while submitting close to %s; will close inline", v);
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
v = staticinvoke <com.google.common.util.concurrent.MoreExecutors: java.util.concurrent.Executor directExecutor()>();
staticinvoke <com.google.common.util.concurrent.ClosingFuture: void closeQuietly(java.lang.AutoCloseable,java.util.concurrent.Executor)>(v, v);
label:
return;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
private void checkAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State, com.google.common.util.concurrent.ClosingFuture$State)
{
com.google.common.util.concurrent.ClosingFuture$State v, v;
com.google.common.util.concurrent.ClosingFuture v;
boolean v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$State;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$State;
v = specialinvoke v.<com.google.common.util.concurrent.ClosingFuture: boolean compareAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State,com.google.common.util.concurrent.ClosingFuture$State)>(v, v);
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.String,java.lang.Object,java.lang.Object)>(v, "Expected state to be %s, but it was %s", v, v);
return;
}
private boolean compareAndUpdateState(com.google.common.util.concurrent.ClosingFuture$State, com.google.common.util.concurrent.ClosingFuture$State)
{
com.google.common.util.concurrent.ClosingFuture$State v, v;
com.google.common.util.concurrent.ClosingFuture v;
java.util.concurrent.atomic.AtomicReference v;
boolean v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$State;
v := @parameter: com.google.common.util.concurrent.ClosingFuture$State;
v = v.<com.google.common.util.concurrent.ClosingFuture: java.util.concurrent.atomic.AtomicReference state>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
java.util.concurrent.CountDownLatch whenClosedCountDown()
{
com.google.common.util.concurrent.ClosingFuture$CloseableList v;
java.util.concurrent.CountDownLatch v;
com.google.common.util.concurrent.ClosingFuture v;
v := @this: com.google.common.util.concurrent.ClosingFuture;
v = v.<com.google.common.util.concurrent.ClosingFuture: com.google.common.util.concurrent.ClosingFuture$CloseableList closeables>;
v = virtualinvoke v.<com.google.common.util.concurrent.ClosingFuture$CloseableList: java.util.concurrent.CountDownLatch whenClosedCountDown()>();
return v;
}
static void <clinit>()
{
java.lang.Class v;
java.lang.String v;
java.util.logging.Logger v;
v = class "Lcom/google/common/util/concurrent/ClosingFuture;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.util.logging.Logger: java.util.logging.Logger getLogger(java.lang.String)>(v);
<com.google.common.util.concurrent.ClosingFuture: java.util.logging.Logger logger> = v;
return;
}
}