[
https://issues.apache.org/jira/browse/CAMEL-24813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18117687#comment-18117687
]
Claus Ibsen commented on CAMEL-24813:
-------------------------------------
Fixed by https://github.com/apache/camel/pull/26675 (commit 4067ca25bde1), fix
version 4.23.0.
_Claude Code on behalf of davsclaus_
> camel-core: PropertiesComponent.unescape drops trailing backslash
> -----------------------------------------------------------------
>
> Key: CAMEL-24813
> URL: https://issues.apache.org/jira/browse/CAMEL-24813
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 4.22.0, 4.22.1
> Environment: Java 25
> Apache Camel 4.22.1
> Reporter: Bruno Gonçalves
> Assignee: Torsten Mielke
> Priority: Major
> Fix For: 4.23.0
>
> Attachments: setbody-newline-placeholder-reproducer.tar.gz
>
>
> {{PropertiesComponent.unescape()}} is intended to handle escaped
> property-placeholder braces ({{{}\\{{ / \}}{}}}),
> but it also drops a trailing backslash when fewer than 2 characters follow it.
> As a result, a route-template / kamelet parameter value ending with the
> Simple escape sequence {{\n}}
> (the two characters '\' + 'n') is corrupted during {{{{{}expression{}}}}}
> resolution:
> input: {{test\n}}
> resolved: {{testn}}
> Simple never sees {{{}\n{}}}, so {{{}setBody().simple("{{expression{}}}")}}
> produces the literal body "{{{}testn{}}}"
> instead of "{{{}test{}}}" + {{{}LF{}}}.
> Mid-string escapes are preserved ({{{}hello\nworld{}}},
> {{{}hello\tworld{}}}), which makes the bug easy to miss.
> Trailing {{\t}} is affected the same way ({{{}test\t{}}} -> {{{}testt{}}}).
> This matters for route templates and kamelets that pass Simple expressions
> via {{{{}}{{parameters{}}}{}}}.
> *Expected:*
> {{{{{}expression{}}}}} with value {{test\n}} should resolve to {{test\n}}
> (backslash preserved),
> then Simple should evaluate to "{{{}test{}}}" + newline.
> *Actual:*
> resolves to {{{}testn{}}}.
> *Steps to Reproduce:*
> 1. Use the attached/standalone reproducer (Camel 4.22.0), or the snippet
> below.
> 2. Run: mvn camel:run
> 3. Observe PropertiesComponent.parseUri and route-template setBody output.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)