[
https://issues.apache.org/jira/browse/CAMEL-24885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-24885.
---------------------------------
Resolution: Fixed
> camel-core - Simple: a resource: text with a function but no scheme ends in a
> StackOverflowError
> ------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24885
> URL: https://issues.apache.org/jira/browse/CAMEL-24885
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 4.22.0
> Reporter: Claus Ibsen
> Priority: Major
> Fix For: 4.23.0
>
>
> A Simple expression whose text starts with {{resource:}} and contains a
> function, but names no scheme, ends in a StackOverflowError at evaluation:
> {code}
> - setBody:
> simple: "resource:templates/${header.type}.json"
> {code}
> {noformat}
> java.lang.StackOverflowError
> at
> org.apache.camel.support.ScriptHelper.resolveOptionalExternalScript(ScriptHelper.java:77)
> at
> org.apache.camel.language.simple.SimpleLanguage$SimpleExpression.evaluate(SimpleLanguage.java:264)
> at
> org.apache.camel.language.simple.SimpleLanguage$SimpleExpression.evaluate(SimpleLanguage.java:267)
> ... (repeats)
> {noformat}
> {{LanguageSupport.isDynamicResource}} only checks the {{resource:}} prefix
> and a function, so {{SimpleLanguage.createExpression}} returns the lazy
> {{SimpleExpression}}; at evaluation
> {{ScriptHelper.resolveOptionalExternalScript}} requires a scheme
> ({{hasExternalScript}}) and returns the text as it is, {{createExpression}}
> is called with the same text and returns the lazy expression again, without
> end.
> Fix: {{isDynamicResource}} uses the same test as the loader
> ({{ScriptHelper.hasExternalScript}}) so a scheme-less {{resource:}} text is a
> plain expression, as it is without a function. Found while testing
> CAMEL-24884.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)