Author: rahul
Date: Wed Jan  7 10:39:21 2009
New Revision: 732422

URL: http://svn.apache.org/viewvc?rev=732422&view=rev
Log:
Minor improvements -
 * Catch generic Exception during expression evaluator so the ErrorReporter 
gets notified
 * Only first match in evalLocation needs replacement
 * Don't return null from a function with Boolean return type

Modified:
    
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/env/javascript/JSEvaluator.java

Modified: 
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/env/javascript/JSEvaluator.java
URL: 
http://svn.apache.org/viewvc/commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/env/javascript/JSEvaluator.java?rev=732422&r1=732421&r2=732422&view=diff
==============================================================================
--- 
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/env/javascript/JSEvaluator.java
 (original)
+++ 
commons/proper/scxml/branches/J6/src/main/java/org/apache/commons/scxml/env/javascript/JSEvaluator.java
 Wed Jan  7 10:39:21 2009
@@ -127,7 +127,7 @@
             // ... evaluate
 
             return engine.eval(buffer.toString(),new 
JSBindings(context,bindings));
-        } catch (ScriptException x) {
+        } catch (Exception x) {
             throw new SCXMLExpressionException("Error evaluating ['" + 
expression + "'] " + x);
         }
     }
@@ -149,7 +149,7 @@
         Object object;
 
         if ((object = eval(context,expression)) == null) {
-           return null;
+           return Boolean.FALSE;
         }
 
         if (object instanceof Boolean) {
@@ -184,7 +184,7 @@
 
             // ... replace Data() function
 
-            while (matcher.find()) {
+            if (matcher.find()) {
                   
matcher.appendReplacement(buffer,"xpath.node(_ALL_NAMESPACES," + 
matcher.group(1) + "," + matcher.group(2) + ")");
             }
 
@@ -193,7 +193,7 @@
             // ... evaluate
 
             return (Node) engine.eval(buffer.toString(),new 
JSBindings(context,bindings));
-        } catch (ScriptException x) {
+        } catch (Exception x) {
             throw new SCXMLExpressionException("Error evaluating ['" + 
expression + "'] " + x);
         }
     }


Reply via email to