This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 6b95cabcaf10 chore: fail with clear error when script EIP has empty 
expression body (#23385)
6b95cabcaf10 is described below

commit 6b95cabcaf101981b8516602f7320c221c64aa4d
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed May 20 20:39:16 2026 +0200

    chore: fail with clear error when script EIP has empty expression body 
(#23385)
    
    When camel-xml-io-dsl parses a whitespace-only expression body (e.g.,
    <groovy></groovy>), the expression text ends up as null. At runtime
    this causes an NPE in ConcurrentHashMap.get(null) deep in the language
    runtime. Add validation in ScriptReifier to detect null/empty script
    code early and throw a clear IllegalArgumentException instead.
    
    Signed-off-by: Claus Ibsen <[email protected]>
    Co-authored-by: Claude <[email protected]>
---
 .../src/main/java/org/apache/camel/reifier/ScriptReifier.java     | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ScriptReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ScriptReifier.java
index eef1b4defaa7..b95a2dbb0897 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ScriptReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ScriptReifier.java
@@ -21,7 +21,9 @@ import org.apache.camel.Processor;
 import org.apache.camel.Route;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ScriptDefinition;
+import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.processor.ScriptProcessor;
+import org.apache.camel.util.ObjectHelper;
 
 public class ScriptReifier extends ExpressionReifier<ScriptDefinition> {
 
@@ -31,7 +33,11 @@ public class ScriptReifier extends 
ExpressionReifier<ScriptDefinition> {
 
     @Override
     public Processor createProcessor() throws Exception {
-        Expression expr = createExpression(definition.getExpression());
+        ExpressionDefinition exp = definition.getExpression();
+        if (exp == null || ObjectHelper.isEmpty(exp.getExpression())) {
+            throw new IllegalArgumentException("Script has no script code 
configured in " + definition);
+        }
+        Expression expr = createExpression(exp);
         ScriptProcessor answer = new ScriptProcessor(expr);
         answer.setDisabled(isDisabled(camelContext, definition));
         return answer;

Reply via email to