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

Claus Ibsen closed CAMEL-24983.
-------------------------------
    Resolution: Duplicate

> camel-core: simple - say what to write when ! is used to negate a function
> --------------------------------------------------------------------------
>
>                 Key: CAMEL-24983
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24983
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>            Reporter: Claus Ibsen
>            Priority: Major
>
> Simple has no boolean {{!}} prefix, so a negated function fails with a 
> message that points at the operator rather than at the {{!}}:
> {noformat}
> ${body != null && !${body.isEmpty()}}
> -> Logical operator && needs a predicate on the right hand side, e.g. 
> ${header.foo} == 'bar'; was: !${body.isEmpty()}
> {noformat}
> The same is true without the inner {{${ }}}: {{${body != null && 
> !body.isEmpty()}}} fails the same way. The nesting is not the problem - 
> {{${body != null && ${body.isEmpty()}}}} evaluates fine - the {{!}} is.
> The message now says the comparison to write instead:
> {noformat}
> ! does not negate a function: compare it instead, so !${body.isEmpty()} is 
> written as ${body.isEmpty()} == false, or negate the operator (!=, !contains)
> {noformat}
> Both {{${body.isEmpty()} == false}} and {{body.isEmpty() == false}} were 
> verified to evaluate correctly.
> h3. Where it comes from
> The local-model benchmark: over 1586 route files a model wrote, the 
> {{!}}-negated form appears in three separate series, alongside two other 
> shapes of the same instinct ({{${body != null && ${body.size()} > 0}}}, which 
> works, and {{${simple:${exchangeProperty.orderId}}}}, which reports an 
> unknown function). A person writing Java or JavaScript makes the same mistake.
> Note this message should be revisited if simple gains support for {{!}} as a 
> negation prefix.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to