Hi.

This fix does not work. Reset method just sets pos = mark, but it is
already 0 (stream is empty).

чт, 19 янв. 2023 г. в 15:57, Claus Ibsen <claus.ib...@gmail.com>:
>
> Hi
>
> Okay can you try with adding reset to stream cache such as and give that a
> test locally.
>
> Object body = exchange.getIn().getBody();
> // reset the stream cache if the body is the instance of StreamCache
> if (body instanceof StreamCache) {
>     ((StreamCache) body).reset();
> }
> if (body instanceof InputStream) {
>     InputStream is = (InputStream) body;
>     if (LOG.isDebugEnabled()) {
>         LOG.debug("Streaming GZIP response in chunked mode with buffer
> size {}", response.getBufferSize());
>     }
>
>
>
> On Wed, Jan 18, 2023 at 10:22 AM Claus Ibsen <claus.ib...@gmail.com> wrote:
>
> >
> >
> > On Tue, Jan 17, 2023 at 3:16 PM Dmitri T <taleras...@gmail.com> wrote:
> >
> >> Sure.
> >> The Server is jetty from camel-jetty.
> >> Message body is:
> >> org.apache.camel.converter.stream.InputStreamCache for
> >> exchange.getIn().getBody() (empty)
> >> org.apache.camel.converter.stream.ByteArrayInputStreamCache for
> >> message.getBody() (not empty)
> >>
> >>
> > Thanks for reporting this. You are welcome to create a JIRA so we can work
> > on a fix.
> > I think we need to check for StreamCache in that part of the code.
> >
> >
> >
> >> вт, 17 янв. 2023 г. в 16:59, Claus Ibsen <claus.ib...@gmail.com>:
> >> >
> >>
> >
> >
> >
> >
> >> > Hi
> >> >
> >> > Thanks for reporting. Can you tell a bit more about what HTTP server you
> >> > are using? And what class type the message body is at that moment in
> >> > doWriteGZIPResponse?
> >> > If the body is not an instance of InputStream then what type is that
> >> body
> >> > of yours?
> >> >
> >> >
> >> > On Tue, Jan 17, 2023 at 1:03 PM Dmitri T <taleras...@gmail.com> wrote:
> >> >
> >> > > Hello.
> >> > > After upgrading from Camel 3.7.x to the recent version, gzipped
> >> > > response (Content-Encoding: gzip) from a route comes empty. I have
> >> > > found an issue CAMEL-13092 (fixed in Camel 3.10) which caused that in
> >> > >
> >> > >
> >> camel-http-common/src/main/java/org/apache/camel/http/common/DefaultHttpBinding.java
> >> > > (line 602 doWriteGZIPResponse method): Object body =
> >> > > exchange.getIn().getBody();
> >> > > I debugged and found. that stream was not empty, if that line was
> >> > > replaced by Object body = message.getBody(InputStream.class);, like it
> >> > > was done for plain non-gzipped response in doWriteDirectResponse
> >> > > method.
> >> > > I have tested this change with ServletStreamingGzipChunkedTest
> >> > > successfully.
> >> > > Is this an issue and could be fixed in the next Camel release?
> >> > >
> >> >
> >> >
> >> > --
> >> > Claus Ibsen
> >> > -----------------
> >> > @davsclaus
> >> > Camel in Action 2: https://www.manning.com/ibsen2
> >>
> >>
> >>
> >> --
> >> Best regards,
> >> Dmitri
> >>
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
> >
>
>
> --
> Claus Ibsen
> -----------------
> @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2



-- 
Best regards,
Dmitri

Reply via email to