Add some checks to better show why failures occur
git-svn-id: https://svn.apache.org/repos/asf/jakarta/bsf/trunk@758430 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bsf3/bsf-utils/src/main/java/org/apache/bsf/Main.java b/bsf3/bsf-utils/src/main/java/org/apache/bsf/Main.java
index 5591235..66c147f 100644
--- a/bsf3/bsf-utils/src/main/java/org/apache/bsf/Main.java
+++ b/bsf3/bsf-utils/src/main/java/org/apache/bsf/Main.java
@@ -23,6 +23,7 @@
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Hashtable;
+import java.util.List;
import javax.script.Bindings;
import javax.script.ScriptContext;
@@ -79,6 +80,10 @@
}
ScriptEngineManager mgr = new ScriptEngineManager();
+ final List engineFactories = mgr.getEngineFactories();
+ if (engineFactories.isEmpty()){
+ throw new RuntimeException("Could not find any engine factories");
+ }
Reader in;
@@ -91,6 +96,9 @@
try {
ScriptEngine engine = mgr.getEngineByExtension(language);
+ if (engine == null){
+ throw new IllegalArgumentException("unable to find engine using Extension: "+language);
+ }
Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);
bindings.put("args", args);
Object obj = engine.eval(in);