@Override
    public final boolean isOpen() {
        final StreamMessage<T> upstream = this.upstream;
        if (upstream != null) {
            return upstream.isOpen();
        }

        return !whenComplete().isDone();
    }
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.
core/src/main/java/com/linecorp/armeria/common/stream/DeferredStreamMessage.java