You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Carsten Ziegeler (Jira)" <ji...@apache.org> on 2023/04/13 05:02:00 UTC
[jira] [Resolved] (SLING-1702) contrib/scripting/velocity VelocityTemplatesScriptEngineFactory needs workaround in case of engine instantiation errors
[ https://issues.apache.org/jira/browse/SLING-1702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Ziegeler resolved SLING-1702.
-------------------------------------
Resolution: Won't Fix
> contrib/scripting/velocity VelocityTemplatesScriptEngineFactory needs workaround in case of engine instantiation errors
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: SLING-1702
> URL: https://issues.apache.org/jira/browse/SLING-1702
> Project: Sling
> Issue Type: Improvement
> Components: Scripting
> Environment: Felix 1.4, Sling 2.0.7, Apache Velocity 1.6.2
> Reporter: Olaf Otto
> Priority: Minor
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> Affects: Rev. 989119 of https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/velocity (2.0.0-SNAPSHOT)
> The (terrible!) Sun implementation of javax.script.ScriptEngineManager silently discards all exceptions thrown when a scripting factory creates an engine:
> ...
> private static final boolean DEBUG = false;
> ...
> } catch (Exception exp) {
> if (DEBUG) exp.printStackTrace();
> }
> This hides any error with the velocity configuration from the user. Thus the VelocityTemplatesScriptEngineFactory should provide a log-and-re-throw workaround, like so:
> ...
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
> ...
> private final Logger logger = LoggerFactory.getLogger(getClass());
> public ScriptEngine getScriptEngine() {
> ScriptEngine engine;
> try {
> engine = new VelocityTemplatesScriptEngine(this);
> } catch (RuntimeException e) {
> logger.error("Unable to instantiate the velocity template engine.", e);
> throw e;
> }
> return engine;
> }
--
This message was sent by Atlassian Jira
(v8.20.10#820010)