@Override
        public int read() throws IOException {
            propagateException();
            final int b = this.buffer.read(timeout);
            if (b == -1) {
                fireComplete();
            }
            return b;
        }
TODO: to be replaced by core functionality
httpclient5/src/main/java/org/apache/hc/client5/http/impl/compat/ClassicToAsyncResponseConsumer.java