1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
Description: Preserves the Futures method removed in Guava 26
Author: Emmanuel Bourg <ebourg@apache.org>
Forwarded: not-needed
--- a/guava/src/com/google/common/util/concurrent/Futures.java
+++ b/guava/src/com/google/common/util/concurrent/Futures.java
@@ -1056,6 +1056,52 @@
* computation is {@linkplain java.util.concurrent.Future#isDone() complete} or, if the
* computation is already complete, immediately.
*
+ * <p>There is no guaranteed ordering of execution of callbacks, but any callback added through
+ * this method is guaranteed to be called once the computation is complete.
+ *
+ * <p>Example:
+ *
+ * <pre>{@code
+ * ListenableFuture<QueryResult> future = ...;
+ * addCallback(future,
+ * new FutureCallback<QueryResult>() {
+ * public void onSuccess(QueryResult result) {
+ * storeInCache(result);
+ * }
+ * public void onFailure(Throwable t) {
+ * reportError(t);
+ * }
+ * });
+ * }</pre>
+ *
+ * <p>This overload, which does not accept an executor, uses {@code directExecutor}, a dangerous
+ * choice in some cases. See the discussion in the {@link ListenableFuture#addListener
+ * ListenableFuture.addListener} documentation. All its warnings about heavyweight listeners are
+ * also applicable to heavyweight callbacks passed to this method.
+ *
+ * <p>For a more general interface to attach a completion listener to a {@code Future}, see {@link
+ * ListenableFuture#addListener addListener}.
+ *
+ * @param future The future attach the callback to.
+ * @param callback The callback to invoke when {@code future} is completed.
+ * @since 10.0
+ * @deprecated Use {@linkplain #addCallback(ListenableFuture, FutureCallback, Executor) the
+ * overload that requires an executor}. For identical behavior, pass {@link
+ * MoreExecutors#directExecutor}, but consider whether another executor would be safer, as
+ * discussed in the {@link ListenableFuture#addListener ListenableFuture.addListener}
+ * documentation. This method is scheduled to be removed in July 2018.
+ */
+ @Deprecated
+ public static <V> void addCallback(
+ ListenableFuture<V> future, FutureCallback<? super V> callback) {
+ addCallback(future, callback, directExecutor());
+ }
+
+ /**
+ * Registers separate success and failure callbacks to be run when the {@code Future}'s
+ * computation is {@linkplain java.util.concurrent.Future#isDone() complete} or, if the
+ * computation is already complete, immediately.
+ *
* <p>The callback is run on {@code executor}. There is no guaranteed ordering of execution of
* callbacks, but any callback added through this method is guaranteed to be called once the
* computation is complete.
|