private final SettableFuture<ResponseT> finalResultFuture;
private final Future<ResponseT> dataGetterFuture;
private final CountDownLatch asyncCompletionLatch;
public static <ResponseT extends Message> OperationFuture<ResponseT> create(
OperationsClient operationsClient,
<BUG>ListenableFuture<Operation> initialOperationFuture,
</BUG>
ScheduledExecutorService executor,
Class<ResponseT> responseClass) {
return create(

private final SettableFuture<ResponseT> finalResultFuture;
private final Future<ResponseT> dataGetterFuture;
private final CountDownLatch asyncCompletionLatch;
public static <ResponseT extends Message> OperationFuture<ResponseT> create(
OperationsClient operationsClient,
RpcFuture<Operation> initialOperationFuture,
ScheduledExecutorService executor,
Class<ResponseT> responseClass) {
return create(
