Completes this task, and if not already aborted or cancelled,
returning the given value as the result of subsequent
invocations of {@code join} and related operations. This method
may be used to provide results for asynchronous tasks, or to
provide alternative handling for tasks that would not otherwise
complete normally. Its use in other situations is
discouraged. This method is overridable, but overridden
versions must invoke {@code super} implementation to maintain
guarantees.
Completes this task, and if not already aborted or cancelled, returning the given value as the result of subsequent invocations of {@code join} and related operations. This method may be used to provide results for asynchronous tasks, or to provide alternative handling for tasks that would not otherwise complete normally. Its use in other situations is discouraged. This method is overridable, but overridden versions must invoke {@code super} implementation to maintain guarantees.
@param value the result value for this task