[ 
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)

Reply via email to