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