concurrent/src/main/java/io/airlift/concurrent/MoreFutures.java
public static <T> void addSuccessCallback(ListenableFuture<T> future, Runnable successCallback, Executor executor)
    {
        requireNonNull(successCallback, "successCallback is null");

        addSuccessCallback(future, t -> successCallback.run(), executor);
    }
public static <T> void addSuccessCallback(ListenableFuture<T> future, Runnable successCallback, Executor executor)
    {
        requireNonNull(successCallback, "successCallback is null");

        addSuccessCallback(future, t -> successCallback.run(), executor);
    }
Invokes the callback, using the specified executor, if the future completes successfully.