[
https://issues.apache.org/jira/browse/CAMEL-25954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-25954.
---------------------------------
Resolution: Fixed
Merged in https://github.com/apache/camel/pull/28271 (1c94c6ef20aa)
_Claude Code on behalf of davsclaus_
> camel-core-languages - Simple: a predicate inside ${ } is split at an
> operator inside brackets or parentheses, and the error quotes text that was
> never written
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25954
> URL: https://issues.apache.org/jira/browse/CAMEL-25954
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 4.24.0
>
>
> A predicate written inside $\{ \}, or the condition of a ternary there, is
> split at its first operator so that its function references can be wrapped
> (CAMEL-24920). The scan for that operator skips quotes, but not brackets and
> parentheses, so an operator in an index or an argument splits the text in the
> wrong place.
> From the local-model benchmark of Oct 21-22 2026, a model wrote:
> {code}
> ${body.?[qty < 1].size() > 0 ? 'not enough' : 'reserved'}
> {code}
> The error quoted text the model never wrote, with a closing brace after qty:
> {code}
> expected symbol whiteSpace but was character: operators and values must be
> separated by a space at location 17
> ${body.?[qty} < 1].size() > 0
> *
> {code}
> The same split happens for an operator in an argument, such as
> $\{iif(header.a > 0 && header.b > 0, 'x', 'y')\} (at the && and at the >).
> Fix: SimpleSyntaxHints.wrapFunctions takes an operator (and a logical && or
> ||) only outside quotes, brackets and parentheses. The error then quotes the
> expression as written.
> _Filed by Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)