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


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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to