This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-4.10.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.10.x by this push:
new a19d22d0a4a CAMEL-22204: Fix iif expression parsing for Strings
(#18496)
a19d22d0a4a is described below
commit a19d22d0a4a6a47ee9b157a6abba7c576f2e54b9
Author: Benjamin Graf <[email protected]>
AuthorDate: Mon Jun 30 20:46:09 2025 +0200
CAMEL-22204: Fix iif expression parsing for Strings (#18496)
---
.../camel/language/simple/ast/SimpleFunctionExpression.java | 2 +-
.../java/org/apache/camel/language/simple/SimpleTest.java | 13 +++++++++----
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
index ab3c7a08810..ef3fa6aea29 100644
---
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
+++
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
@@ -901,7 +901,7 @@ public class SimpleFunctionExpression extends
LiteralExpression {
throw new SimpleParserException(
"Valid syntax:
${iif(predicate,trueExpression,falseExpression)} was: " + function,
token.getIndex());
}
- String[] tokens = StringQuoteHelper.splitSafeQuote(values, ',');
+ String[] tokens = StringQuoteHelper.splitSafeQuote(values, ',',
true, true);
if (tokens.length > 3) {
throw new SimpleParserException(
"Valid syntax:
${iif(predicate,trueExpression,falseExpression)} was: " + function,
token.getIndex());
diff --git
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
index fbcc49b19a1..2ac492c2a9f 100644
---
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
@@ -2099,16 +2099,21 @@ public class SimpleTest extends LanguageTestSupport {
@Test
public void testIif() {
exchange.getIn().setHeader("foo", 44);
- assertExpression("${iif(${header.foo} > 0,'positive','negative')}",
"positive");
+ assertExpression("${iif(${header.foo} > 0,positive,negative)}",
"positive");
exchange.getIn().setHeader("foo", -123);
- assertExpression("${iif(${header.foo} > 0,'positive','negative')}",
"negative");
+ assertExpression("${iif(${header.foo} > 0,positive,negative)}",
"negative");
exchange.getIn().setBody("Hello World");
exchange.getIn().setHeader("foo", 44);
- assertExpression("${iif(${header.foo} > 0,${body},'Bye World')}",
"Hello World");
+ assertExpression("${iif(${header.foo} > 0,${body},Bye World)}", "Hello
World");
exchange.getIn().setHeader("foo", -123);
- assertExpression("${iif(${header.foo} > 0,${body},'Bye World')}", "Bye
World");
+ assertExpression("${iif(${header.foo} > 0,${body},Bye World)}", "Bye
World");
assertExpression("${iif(${header.foo} > 0,${body},${null})}", null);
+
+ exchange.getIn().setHeader("CamelFileName", "testfile.txt");
+ assertExpression("${iif(${file:name} startsWith 'test',foo,bar)}",
"foo");
+ exchange.getIn().setHeader("CamelFileName", "dummy.txt");
+ assertExpression("${iif(${file:name} startsWith 'test',foo,bar)}",
"bar");
}
@Test