summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2013-02-25 14:39:50 +0100
committerAndrew Branson <andrew.branson@cern.ch>2013-02-25 14:39:50 +0100
commitc3bdd270d31bcc610e25616d642f2555641b783e (patch)
treeb06e015cc5ed0624703f7e1f85e94ae4b055d787 /src
parent1a48317ed6932f0f07aec225f53452b0a84e90f7 (diff)
Throw error properly if script engine not found.
Fixes #104
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/c2kernel/scripting/Script.java10
1 files changed, 8 insertions, 2 deletions
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();