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;