public synchronized final void completed(@CheckForNull Throwable error) {
        if (executor!=null) {
            executor.completedAsynchronous(error);
        } else {
            result = error == null ? NULL : error;
        }
    }
public synchronized final void completed ( @ CheckForNull Throwable error ) { if ( executor != null ) { executor . completedAsynchronous ( error ) ; } else { result = error == null ? NULL : error ; } }
To be called when the task is actually complete.
@param error normally null (preferable to handle errors yourself), but may be specified to simulate an exception from {@link Executable#run}, as per {@link ExecutorListener#taskCompletedWithProblems}