[
https://issues.apache.org/jira/browse/CAMEL-19512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xilai Dai updated CAMEL-19512:
------------------------------
Description:
It seems there is a regression from Camel 3.20.3 which is the SetHeader not
working anymore with InputStreamCache type.
Given that a simple route:
{code}
from("timer:cTimer_1" + "?period=" + 1 + "&repeatCount=" + 1 +
"&delay=" + 1)
.setHeader("myheader1").constant("Hi")
.log(org.apache.camel.LoggingLevel.WARN, "MyRoute.cLog_1",
"header myheader1 value is: ${header.myheader1}")
.setHeader("myheader2").constant(iscache1)
.log(org.apache.camel.LoggingLevel.WARN, "MyRoute.cLog_2",
"header myheader2 value is: ${header.myheader2}")
.setBody().constant(iscache2)
.log(org.apache.camel.LoggingLevel.WARN, "MyRoute.cLog_3",
"body value is: ${body}");
{code}
the value of header.myheader2 is always null from Camel 3.20.3, whereas in
Camel 3.20.2 or earlier version, it worked as expected.
Attached a sample project for easily reproduce the issue.
was:
It seems there is a regression from Camel 3.20.3 which is the Simple language
not working anymore with InputStreamCache body.
Given that a simple route:
{code}
from("timer:cTimer_1" + "?period=" + 1 + "&repeatCount=" + 1 +
"&delay=" + 1)
.process(new org.apache.camel.Processor() {
public void
process(org.apache.camel.Exchange exchange) throws Exception {
ByteBuffer buffer =
ByteBuffer.allocate(8);
buffer.putLong(15);
InputStreamCache iscache = new
InputStreamCache(buffer.array());
exchange.getIn().setBody(iscache);
}
}).process(new org.apache.camel.Processor() {
public void
process(org.apache.camel.Exchange exchange) throws Exception {
System.out.println("abc: " +
exchange.getIn().getBody().getClass().getName());
}
}).setHeader("newCustomer").simple("${body}")
.log(org.apache.camel.LoggingLevel.WARN,
"MyRoute.cLog_4",
"header newCustomer value is:
${header.newCustomer}");
{code}
the value of header.newCustomer is always null, whereas in Camel 3.20.2 or
earlier version, it worked well.
Attached a sample project for easily reproduce the issue.
> SetHeader not working anymore with InputStreamCache type
> --------------------------------------------------------
>
> Key: CAMEL-19512
> URL: https://issues.apache.org/jira/browse/CAMEL-19512
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 3.20.3
> Environment: JDK 11
> Reporter: Xilai Dai
> Priority: Minor
> Attachments: test-setheader.zip
>
>
> It seems there is a regression from Camel 3.20.3 which is the SetHeader not
> working anymore with InputStreamCache type.
> Given that a simple route:
> {code}
> from("timer:cTimer_1" + "?period=" + 1 + "&repeatCount=" + 1 +
> "&delay=" + 1)
> .setHeader("myheader1").constant("Hi")
> .log(org.apache.camel.LoggingLevel.WARN, "MyRoute.cLog_1",
> "header myheader1 value is: ${header.myheader1}")
> .setHeader("myheader2").constant(iscache1)
> .log(org.apache.camel.LoggingLevel.WARN, "MyRoute.cLog_2",
> "header myheader2 value is: ${header.myheader2}")
> .setBody().constant(iscache2)
> .log(org.apache.camel.LoggingLevel.WARN, "MyRoute.cLog_3",
> "body value is: ${body}");
> {code}
> the value of header.myheader2 is always null from Camel 3.20.3, whereas in
> Camel 3.20.2 or earlier version, it worked as expected.
> Attached a sample project for easily reproduce the issue.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)