diff --git a/android/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java b/android/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java index e8811b400dfc..d0d4dbc76331 100644 --- a/android/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java +++ b/android/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java @@ -53,7 +53,7 @@ abstract class AbstractCatchingFuture< return future; } - static ListenableFuture create( + static ListenableFuture createAsync( ListenableFuture input, Class exceptionType, AsyncFunction fallback, diff --git a/android/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java b/android/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java index 8160564dc428..7e0dbe72376a 100644 --- a/android/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java +++ b/android/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java @@ -40,7 +40,7 @@ abstract class AbstractTransformFuture< I extends @Nullable Object, O extends @Nullable Object, F, T extends @Nullable Object> extends FluentFuture.TrustedFuture implements Runnable { - static ListenableFuture create( + static ListenableFuture createAsync( ListenableFuture input, AsyncFunction function, Executor executor) { diff --git a/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java b/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java index 99276ddcae1d..545c28d1079d 100644 --- a/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java +++ b/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java @@ -382,7 +382,24 @@ public interface ValueAndCloserConsumer { */ public static ClosingFuture submit( ClosingCallable callable, Executor executor) { - return new ClosingFuture<>(callable, executor); + checkNotNull(callable); + CloseableList closeables = new CloseableList(); + TrustedListenableFutureTask task = + TrustedListenableFutureTask.create( + new Callable() { + @Override + @ParametricNullness + public V call() throws Exception { + return callable.call(closeables.closer); + } + + @Override + public String toString() { + return callable.toString(); + } + }); + executor.execute(task); + return new ClosingFuture<>(task, closeables); } /** @@ -394,7 +411,30 @@ public interface ValueAndCloserConsumer { */ public static ClosingFuture submitAsync( AsyncClosingCallable callable, Executor executor) { - return new ClosingFuture<>(callable, executor); + checkNotNull(callable); + CloseableList closeables = new CloseableList(); + TrustedListenableFutureTask task = + TrustedListenableFutureTask.create( + new AsyncCallable() { + @Override + public ListenableFuture call() throws Exception { + CloseableList newCloseables = new CloseableList(); + try { + ClosingFuture closingFuture = callable.call(newCloseables.closer); + closingFuture.becomeSubsumedInto(closeables); + return closingFuture.future; + } finally { + closeables.add(newCloseables, directExecutor()); + } + } + + @Override + public String toString() { + return callable.toString(); + } + }); + executor.execute(task); + return new ClosingFuture<>(task, closeables); } /** @@ -583,57 +623,16 @@ public static Combiner whenAllSucceed( } private final AtomicReference state = new AtomicReference<>(OPEN); - private final CloseableList closeables = new CloseableList(); + private final CloseableList closeables; private final FluentFuture future; private ClosingFuture(ListenableFuture future) { - this.future = FluentFuture.from(future); - } - - private ClosingFuture(final ClosingCallable callable, Executor executor) { - checkNotNull(callable); - TrustedListenableFutureTask task = - TrustedListenableFutureTask.create( - new Callable() { - @Override - @ParametricNullness - public V call() throws Exception { - return callable.call(closeables.closer); - } - - @Override - public String toString() { - return callable.toString(); - } - }); - executor.execute(task); - this.future = task; + this(future, new CloseableList()); } - private ClosingFuture(final AsyncClosingCallable callable, Executor executor) { - checkNotNull(callable); - TrustedListenableFutureTask task = - TrustedListenableFutureTask.create( - new AsyncCallable() { - @Override - public ListenableFuture call() throws Exception { - CloseableList newCloseables = new CloseableList(); - try { - ClosingFuture closingFuture = callable.call(newCloseables.closer); - closingFuture.becomeSubsumedInto(closeables); - return closingFuture.future; - } finally { - closeables.add(newCloseables, directExecutor()); - } - } - - @Override - public String toString() { - return callable.toString(); - } - }); - executor.execute(task); - this.future = task; + private ClosingFuture(ListenableFuture future, CloseableList closeables) { + this.future = FluentFuture.from(future); + this.closeables = closeables; } /** diff --git a/android/guava/src/com/google/common/util/concurrent/Futures.java b/android/guava/src/com/google/common/util/concurrent/Futures.java index e8441519ba64..39e54f064606 100644 --- a/android/guava/src/com/google/common/util/concurrent/Futures.java +++ b/android/guava/src/com/google/common/util/concurrent/Futures.java @@ -352,7 +352,7 @@ private Futures() {} Class exceptionType, AsyncFunction fallback, Executor executor) { - return AbstractCatchingFuture.create(input, exceptionType, fallback, executor); + return AbstractCatchingFuture.createAsync(input, exceptionType, fallback, executor); } /** @@ -417,7 +417,7 @@ ListenableFuture transformAsync( ListenableFuture input, AsyncFunction function, Executor executor) { - return AbstractTransformFuture.create(input, function, executor); + return AbstractTransformFuture.createAsync(input, function, executor); } /** diff --git a/guava-gwt/src-super/com/google/common/util/concurrent/super/com/google/common/util/concurrent/GwtFuturesCatchingSpecialization.java b/guava-gwt/src-super/com/google/common/util/concurrent/super/com/google/common/util/concurrent/GwtFuturesCatchingSpecialization.java index f5e05b2130ac..6a112ec85d12 100644 --- a/guava-gwt/src-super/com/google/common/util/concurrent/super/com/google/common/util/concurrent/GwtFuturesCatchingSpecialization.java +++ b/guava-gwt/src-super/com/google/common/util/concurrent/super/com/google/common/util/concurrent/GwtFuturesCatchingSpecialization.java @@ -44,6 +44,6 @@ abstract class GwtFuturesCatchingSpecialization { Class exceptionType, AsyncFunction fallback, Executor executor) { - return AbstractCatchingFuture.create(input, exceptionType, fallback, executor); + return AbstractCatchingFuture.createAsync(input, exceptionType, fallback, executor); } } diff --git a/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java b/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java index e8811b400dfc..d0d4dbc76331 100644 --- a/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java +++ b/guava/src/com/google/common/util/concurrent/AbstractCatchingFuture.java @@ -53,7 +53,7 @@ abstract class AbstractCatchingFuture< return future; } - static ListenableFuture create( + static ListenableFuture createAsync( ListenableFuture input, Class exceptionType, AsyncFunction fallback, diff --git a/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java b/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java index 8160564dc428..7e0dbe72376a 100644 --- a/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java +++ b/guava/src/com/google/common/util/concurrent/AbstractTransformFuture.java @@ -40,7 +40,7 @@ abstract class AbstractTransformFuture< I extends @Nullable Object, O extends @Nullable Object, F, T extends @Nullable Object> extends FluentFuture.TrustedFuture implements Runnable { - static ListenableFuture create( + static ListenableFuture createAsync( ListenableFuture input, AsyncFunction function, Executor executor) { diff --git a/guava/src/com/google/common/util/concurrent/ClosingFuture.java b/guava/src/com/google/common/util/concurrent/ClosingFuture.java index 9efe7938481c..8280f46189be 100644 --- a/guava/src/com/google/common/util/concurrent/ClosingFuture.java +++ b/guava/src/com/google/common/util/concurrent/ClosingFuture.java @@ -387,7 +387,24 @@ public interface ValueAndCloserConsumer { */ public static ClosingFuture submit( ClosingCallable callable, Executor executor) { - return new ClosingFuture<>(callable, executor); + checkNotNull(callable); + CloseableList closeables = new CloseableList(); + TrustedListenableFutureTask task = + TrustedListenableFutureTask.create( + new Callable() { + @Override + @ParametricNullness + public V call() throws Exception { + return callable.call(closeables.closer); + } + + @Override + public String toString() { + return callable.toString(); + } + }); + executor.execute(task); + return new ClosingFuture<>(task, closeables); } /** @@ -399,7 +416,30 @@ public interface ValueAndCloserConsumer { */ public static ClosingFuture submitAsync( AsyncClosingCallable callable, Executor executor) { - return new ClosingFuture<>(callable, executor); + checkNotNull(callable); + CloseableList closeables = new CloseableList(); + TrustedListenableFutureTask task = + TrustedListenableFutureTask.create( + new AsyncCallable() { + @Override + public ListenableFuture call() throws Exception { + CloseableList newCloseables = new CloseableList(); + try { + ClosingFuture closingFuture = callable.call(newCloseables.closer); + closingFuture.becomeSubsumedInto(closeables); + return closingFuture.future; + } finally { + closeables.add(newCloseables, directExecutor()); + } + } + + @Override + public String toString() { + return callable.toString(); + } + }); + executor.execute(task); + return new ClosingFuture<>(task, closeables); } /** @@ -588,57 +628,16 @@ public static Combiner whenAllSucceed( } private final AtomicReference state = new AtomicReference<>(OPEN); - private final CloseableList closeables = new CloseableList(); + private final CloseableList closeables; private final FluentFuture future; private ClosingFuture(ListenableFuture future) { - this.future = FluentFuture.from(future); - } - - private ClosingFuture(final ClosingCallable callable, Executor executor) { - checkNotNull(callable); - TrustedListenableFutureTask task = - TrustedListenableFutureTask.create( - new Callable() { - @Override - @ParametricNullness - public V call() throws Exception { - return callable.call(closeables.closer); - } - - @Override - public String toString() { - return callable.toString(); - } - }); - executor.execute(task); - this.future = task; + this(future, new CloseableList()); } - private ClosingFuture(final AsyncClosingCallable callable, Executor executor) { - checkNotNull(callable); - TrustedListenableFutureTask task = - TrustedListenableFutureTask.create( - new AsyncCallable() { - @Override - public ListenableFuture call() throws Exception { - CloseableList newCloseables = new CloseableList(); - try { - ClosingFuture closingFuture = callable.call(newCloseables.closer); - closingFuture.becomeSubsumedInto(closeables); - return closingFuture.future; - } finally { - closeables.add(newCloseables, directExecutor()); - } - } - - @Override - public String toString() { - return callable.toString(); - } - }); - executor.execute(task); - this.future = task; + private ClosingFuture(ListenableFuture future, CloseableList closeables) { + this.future = FluentFuture.from(future); + this.closeables = closeables; } /** diff --git a/guava/src/com/google/common/util/concurrent/Futures.java b/guava/src/com/google/common/util/concurrent/Futures.java index b2040e888372..7a967715c833 100644 --- a/guava/src/com/google/common/util/concurrent/Futures.java +++ b/guava/src/com/google/common/util/concurrent/Futures.java @@ -368,7 +368,7 @@ private Futures() {} Class exceptionType, AsyncFunction fallback, Executor executor) { - return AbstractCatchingFuture.create(input, exceptionType, fallback, executor); + return AbstractCatchingFuture.createAsync(input, exceptionType, fallback, executor); } /** @@ -452,7 +452,7 @@ ListenableFuture transformAsync( ListenableFuture input, AsyncFunction function, Executor executor) { - return AbstractTransformFuture.create(input, function, executor); + return AbstractTransformFuture.createAsync(input, function, executor); } /**