You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2009/08/01 21:31:12 UTC
svn commit: r799910 - in /commons/proper/jexl/branches/2.0/src:
java/org/apache/commons/jexl/scripting/JexlScriptEngine.java
test/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java
Author: sebb
Date: Sat Aug 1 19:31:11 2009
New Revision: 799910
URL: http://svn.apache.org/viewvc?rev=799910&view=rev
Log:
Script engine must throw NPE if either parameter is null
Modified:
commons/proper/jexl/branches/2.0/src/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java
Modified: commons/proper/jexl/branches/2.0/src/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java?rev=799910&r1=799909&r2=799910&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java (original)
+++ commons/proper/jexl/branches/2.0/src/java/org/apache/commons/jexl/scripting/JexlScriptEngine.java Sat Aug 1 19:31:11 2009
@@ -75,6 +75,10 @@
/** {@inheritDoc} */
public Object eval(Reader script, ScriptContext context) throws ScriptException {
+ // This is mandated by JSR-223 (see SCR.5.5.2 Methods)
+ if (script == null || context == null) {
+ throw new NullPointerException("script and context must be non-null");
+ }
BufferedReader reader = new BufferedReader(script);
StringBuilder buffer = new StringBuilder();
try {
@@ -98,8 +102,9 @@
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
public Object eval(String scriptText, final ScriptContext context) throws ScriptException {
- if (scriptText == null) {
- return null;
+ // This is mandated by JSR-223 (see SCR.5.5.2 Methods)
+ if (scriptText == null || context == null) {
+ throw new NullPointerException("script and context must be non-null");
}
// This is mandated by JSR-223 (end of section SCR.4.3.4.1.2 - Script Execution)
context.setAttribute("context", context, ScriptContext.ENGINE_SCOPE);
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java?rev=799910&r1=799909&r2=799910&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/scripting/JexlScriptEngineTest.java Sat Aug 1 19:31:11 2009
@@ -18,10 +18,12 @@
package org.apache.commons.jexl.scripting;
+import java.io.Reader;
import java.util.Map;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
import junit.framework.TestCase;
@@ -50,6 +52,25 @@
assertEquals(initialValue,engine.get("old"));
assertEquals(newValue,engine.get("value"));
}
+
+ public void testNulls() throws Exception {
+ ScriptEngineManager manager = new ScriptEngineManager();
+ assertNotNull("Manager should not be null", manager);
+ ScriptEngine engine = manager.getEngineByName("jexl");
+ assertNotNull("Engine should not be null (name)", engine);
+ try {
+ engine.eval((String)null);
+ fail("Should have caused NPE");
+ } catch (NullPointerException e) {
+ // NOOP
+ }
+ try {
+ engine.eval((Reader)null);
+ fail("Should have caused NPE");
+ } catch (NullPointerException e) {
+ // NOOP
+ }
+ }
public void testEngineNames() throws Exception {
ScriptEngine engine;