[
https://issues.apache.org/jira/browse/CAMEL-25979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-25979:
--------------------------------
Fix Version/s: 4.22.3
4.18.6
> camel-language - compile a script from the CamelLanguageScript header once,
> never keep it as the script of the endpoint, and remove the header after use
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25979
> URL: https://issues.apache.org/jira/browse/CAMEL-25979
> Project: Camel
> Issue Type: Bug
> Components: camel-language
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.18.6, 4.22.3, 4.24.0
>
>
> With {{allowTemplateFromHeader=true}}, the language producer takes the script
> from the {{CamelLanguageScript}} header ({{LanguageProducer.process}}, main
> e6885df7894d):
> * a String script is compiled twice (lines 58 and 104);
> * with {{cacheScript=true}} the second compile is stored as the cached
> expression of the endpoint (line 110). With a {{resource:}} script and the
> content cache on, the default, the later exchanges without the header run
> that script instead of the script of the endpoint. With an inline script, the
> script of the endpoint is compiled again on every exchange from then on, and
> with cacheScript the compiled expressions are not stopped or removed (line
> 121);
> * the header stays on the message, so a later language endpoint with
> allowTemplateFromHeader runs the same script again.
> Checked on 4.24.0-SNAPSHOT with {{camel run}}:
> {{language:simple:resource:file:script.txt?allowTemplateFromHeader=true&cacheScript=true}},
> with the header on the second of four exchanges only, ran the script of the
> header for exchanges 2, 3 and 4.
> Proposal: compile a header script once and use it for that exchange only,
> cache only the script of the endpoint, and remove the header after it is
> used, as the velocity, freemarker and xslt components do with their template
> headers.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)