@throws rejectedexecutionexception
@return a {@code listenablefuture} representing pending completion of the task
file : https_github_com_google_guava_git/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java