Claus Ibsen created CAMEL-20938:
-----------------------------------
Summary: camel-http - Using disableStreamCache=true cannot read
body later due to stream closed
Key: CAMEL-20938
URL: https://issues.apache.org/jira/browse/CAMEL-20938
Project: Camel
Issue Type: Bug
Components: camel-http
Reporter: Claus Ibsen
Assignee: Claus Ibsen
Fix For: 4.7.0
Reported in mailing list.
{code}
2024-07-03 08:47:26.061 WARN 30864 --- [ - timer://test]
ache.camel.component.timer.TimerConsumer : Error processing exchange.
Exchange[8164CC526FF834E-0000000000000000]. Caused by:
[org.apache.camel.TypeConversionException - Error during type conversion from
type: org.apache.hc.client5.http.entity.LazyDecompressingInputStream to the
required type: java.lang.String with value
org.apache.hc.client5.http.entity.LazyDecompressingInputStream@6f9df776 due to
java.io.IOException: Attempted read on closed stream.]
org.apache.camel.TypeConversionException: Error during type conversion from
type: org.apache.hc.client5.http.entity.LazyDecompressingInputStream to the
required type: java.lang.String with value
org.apache.hc.client5.http.entity.LazyDecompressingInputStream@6f9df776 due to
java.io.IOException: Attempted read on closed stream.
at
org.apache.camel.converter.CamelBaseBulkConverterLoader.convertTo(CamelBaseBulkConverterLoader.java:65)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.spi.BulkTypeConverters.convertTo(BulkTypeConverters.java:122)
~[camel-api-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.tryCachedConverters(CoreTypeConverterRegistry.java:416)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:375)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertToAndStat(CoreTypeConverterRegistry.java:269)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.converter.CoreTypeConverterRegistry.convertTo(CoreTypeConverterRegistry.java:164)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:52)
~[camel-support-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.support.builder.ExpressionBuilder$62.evaluate(ExpressionBuilder.java:2105)
~[camel-support-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:45)
~[camel-support-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.processor.LogProcessor.process(LogProcessor.java:71)
~[camel-core-processor-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.handleFirst(RedeliveryErrorHandler.java:440)
~[camel-core-processor-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:416)
~[camel-core-processor-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
[camel-base-engine-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
[camel-base-engine-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
[camel-base-engine-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
[camel-base-engine-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
[camel-base-engine-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at org.apache.camel.processor.Pipeline.process(Pipeline.java:163)
[camel-core-processor-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:346)
[camel-base-engine-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:322)
[camel-base-engine-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:293)
[camel-timer-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.component.timer.TimerConsumer$1.doRun(TimerConsumer.java:164)
[camel-timer-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:136)
[camel-timer-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at java.base/java.util.TimerThread.mainLoop(Timer.java:566) [?:?]
at java.base/java.util.TimerThread.run(Timer.java:516) [?:?]
Caused by: java.io.IOException: Attempted read on closed stream.
at
org.apache.hc.core5.http.io.EofSensorInputStream.isReadAllowed(EofSensorInputStream.java:107)
~[httpcore5-5.2.4.jar:5.2.4]
at
org.apache.hc.core5.http.io.EofSensorInputStream.read(EofSensorInputStream.java:116)
~[httpcore5-5.2.4.jar:5.2.4]
at
java.base/java.util.zip.CheckedInputStream.read(CheckedInputStream.java:59)
~[?:?]
at
java.base/java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:266)
~[?:?]
at
java.base/java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:258)
~[?:?]
at
java.base/java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)
~[?:?]
at
java.base/java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:79) ~[?:?]
at
java.base/java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:91) ~[?:?]
at
org.apache.hc.client5.http.entity.GZIPInputStreamFactory.create(GZIPInputStreamFactory.java:61)
~[httpclient5-5.2.1.jar:5.2.1]
at
org.apache.hc.client5.http.entity.LazyDecompressingInputStream.initWrapper(LazyDecompressingInputStream.java:51)
~[httpclient5-5.2.1.jar:5.2.1]
at
org.apache.hc.client5.http.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:69)
~[httpclient5-5.2.1.jar:5.2.1]
at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
~[?:?]
at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
~[?:?]
at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
~[?:?]
at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
~[?:?]
at java.base/java.io.BufferedReader.fill(BufferedReader.java:162) ~[?:?]
at java.base/java.io.BufferedReader.read1(BufferedReader.java:213)
~[?:?]
at java.base/java.io.BufferedReader.read(BufferedReader.java:287) ~[?:?]
at java.base/java.io.Reader.read(Reader.java:250) ~[?:?]
at org.apache.camel.util.IOHelper.toString(IOHelper.java:144)
~[camel-util-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at org.apache.camel.util.IOHelper.toString(IOHelper.java:128)
~[camel-util-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at org.apache.camel.util.IOHelper.toString(IOHelper.java:124)
~[camel-util-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.converter.IOConverter.toString(IOConverter.java:186)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.converter.IOConverter.toString(IOConverter.java:201)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.converter.CamelBaseBulkConverterLoader.doConvertTo(CamelBaseBulkConverterLoader.java:345)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
at
org.apache.camel.converter.CamelBaseBulkConverterLoader.convertTo(CamelBaseBulkConverterLoader.java:56)
~[camel-base-4.7.0-SNAPSHOT.jar:4.7.0-SNAPSHOT]
... 24 more
{code}
When running
{code}
import org.apache.camel.Exchange;
public class HttpBug extends org.apache.camel.builder.RouteBuilder {
@Override
public void configure() throws Exception {
getContext().getTypeConverterRegistry();
//@formatter:off
from("timer:test?repeatCount=1")
.setHeader(Exchange.HTTP_METHOD, constant("GET"))
.setHeader(Exchange.HTTP_URI,
constant("https://camel.apache.org/components/4.4.x/http-component.html"))
.to("http:myHttpRequest?disableStreamCache=true")
.log("body : ${body}")
.end();
//@formatter:on
}
}
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)