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

Reply via email to