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.

Reply via email to