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

Reply via email to