BTW, it seems that behavior comes from "The type converter from InputStream to byte[] will now close the input stream after the conversion" (https://camel.apache.org/manual/camel-3x-upgrade-guide-3_18.html)
чт, 19 янв. 2023 г. в 17:42, Dmitri T <taleras...@gmail.com>: > > 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 -- Best regards, Dmitri