This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch quick-fix/script-eip-empty-expression-npe in repository https://gitbox.apache.org/repos/asf/camel.git
commit 12a372f8640821bcae0d82c6d11ddcea87abca26 Author: Claus Ibsen <[email protected]> AuthorDate: Wed May 20 19:25:35 2026 +0200 chore: fail with clear error when script EIP has empty expression body 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. Co-Authored-By: Claude <[email protected]> Signed-off-by: Claus Ibsen <[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;
