code: public void close(Throwable cause) {
          requireNonNull(cause, "cause");
          final DefaultStreamMessage<T> m = new DefaultStreamMessage<>();
          m.close(cause);
          delegate(m);
      }
docs: Closes the deferred stream without setting a delegate.
  
  @throws IllegalStateException if the delegate has been set already or
  if {@link #close()} or {@link #close(Throwable)} was called already.