From c3bdd270d31bcc610e25616d642f2555641b783e Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Mon, 25 Feb 2013 14:39:50 +0100 Subject: Throw error properly if script engine not found. Fixes #104 --- src/main/java/com/c2kernel/scripting/Script.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/c2kernel/scripting/Script.java b/src/main/java/com/c2kernel/scripting/Script.java index 98ab8cf..ab3c0e6 100644 --- a/src/main/java/com/c2kernel/scripting/Script.java +++ b/src/main/java/com/c2kernel/scripting/Script.java @@ -147,8 +147,10 @@ public class Script } - public void setScriptEngine(String lang) { + public void setScriptEngine(String lang) throws ScriptingEngineException { engine = new ScriptEngineManager().getEngineByName(lang); + if (engine==null) + throw new ScriptingEngineException("No script engine for '"+lang+"' found."); Bindings beans = engine.createBindings(); context = new SimpleScriptContext(); context.setBindings(beans, ScriptContext.ENGINE_SCOPE); @@ -254,7 +256,11 @@ public class Script if (!currentParam.hasAttribute("language")) throw new ScriptParsingException("Script data incomplete, must specify scripting language"); Logger.msg(6, "Script.parseScriptXML() - Script Language: " + currentParam.getAttribute("language")); - setScriptEngine(currentParam.getAttribute("language")); + try { + setScriptEngine(currentParam.getAttribute("language")); + } catch (ScriptingEngineException ex) { + throw new ScriptParsingException(ex.getMessage()); + } // get script source NodeList scriptChildNodes = currentParam.getChildNodes(); -- cgit v1.2.3