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);
    }
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.
Invokes the callback using the specified executor if the future completes successfully .