code: public void fail(Throwable t) {
      if (!failed) {
        if (doneHandler != null) {
          doneHandler.handle(new DefaultFutureResult<T>(t));
        } else {
          cause = t;
        }
        failed = true;
      }
    }
docs: Indicates that a call failed. This will immediately fail the handler.
  
  @param t The cause of the failure.