[ 
https://issues.apache.org/jira/browse/CAMEL-26420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-26420 started by shashank.
----------------------------------------
> camel-core - Simple: the white space around an argument of join is part of it
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-26420
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26420
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>            Reporter: shashank
>            Assignee: shashank
>            Priority: Minor
>
> Follow-up of CAMEL-26312 (apache/camel#28715), asked for in its review.
> {{JoinFunctionFactory}} splits the arguments of 
> {{${join(separator,prefix,exp)}}} with 
> {{StringQuoteHelper.splitSafeQuote(values, ',', false)}}, which keeps the 
> white space around a value, also outside its quotes. A space after the comma 
> becomes part of the next argument:
> {noformat}
> body: [A, B, C]
> ${join(&,id=)}                 -> id=A&id=B&id=C
> ${join(&, id=)}                -> " id=A& id=B& id=C"   (the prefix is " id=")
> ${join(&, id=, ${header.ids})} -> the expression is " ${header.ids}"
> {noformat}
> CAMEL-24969 (4.23.0) fixed the same split for the collection functions, and 
> CAMEL-26312 for {{replace}}, {{substring}}, {{substringBefore}}, 
> {{substringAfter}}, {{substringBetween}} and {{contains}}, with the shared 
> {{SimpleFunctionHelper.splitArguments}} helper. {{join}} was left out of 
> CAMEL-26312 on purpose, because its separator can be white space on purpose: 
> {{${join(; ,'')}}} gives {{A; B; C}} today (separator {{"; "}}); with 
> {{splitArguments}} it becomes {{A;B;C}} and the separator has to be quoted.
> Options:
> * (a) use {{splitArguments}} for all three arguments, document that a 
> separator with spaces is quoted, with an upgrade-guide entry;
> * (b) use {{splitArguments}} for the prefix and the expression only, and keep 
> the separator as written.
> Tests: {{${join(&, id=)}}} gives {{id=A&id=B&id=C}}; a nested expression 
> after a space; a quoted separator with spaces; the documented examples in 
> simple-functions.adoc unchanged.
> _Filed with Claude Code on behalf of allthingssecurity._



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to