I am having a similar issue where I always get a 0 value returned when I try to use the ScriptEngine eval. By using Logger, I was able to determine that there are NullPointerExceptions being generated. After further inspection, it appears that GAE doesn't always return a valid script engine (if ever), because it throws an exception when you try to use it.
My code looks like: public double myEval(String JsFormulaStr ) { double solutionValue = 0; ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine eng = mgr.getEngineByName("JavaScript"); if(eng == null) { // Added this block of code to prevent java.lang.NullPointerException... log.severe("Unable to get Script Engine." ); return 0; } try { Object jsResults = eng.eval(JsFormulaStr); solutionValue = Double.parseDouble(jsResults.toString()); return solutionValue; } catch(Exception e) { log.severe("[ERROR] in getCalculatedSolution_FromJS_ToDouble()::\n\t" + "Formula String is: " + JsFormulaStr + "\n\t" + e); return 0; } } Everything works fine if I run it locally as a WebApp (Both in Eclipse & Netbeans. And within Tomcat & Glassfish 4.0). Some of the strings which I tried to eval: - 62.0 / 100 - 0.0 * 352.0 - (0 - 428) * 1000 - (0 - 597) * 1000 - 73.0 / 100 NOTE: The 0's or 0.0's are from other evaluations which have failed in previous calls. Since this function returns 0 on error. According to Google's JRE Class Whitelist<https://developers.google.com/appengine/docs/java/jrewhitelist>the ScriptEngineManager and ScriptEngine classes are allowed. So I don't understand why it isn't working as expected. Any suggestions? Thanks in advance, Randy -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine. For more options, visit https://groups.google.com/d/optout.