@Async javadoc suggests that you can refine the return type of the Future you are returning to ListenableFuture, and provide an AsyncResult as a value holder.

However, both ListenableFuture and AsyncResult are deprecated since 6.0, in favor of CompletableFuture. @Async documentation should reflect this and stop suggesting ListenableFuture as result type.