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);