Author: sascharodekamp
Date: Tue Apr  3 13:36:03 2012
New Revision: 1308896

URL: http://svn.apache.org/viewvc?rev=1308896&view=rev
Log:
Changed the FileReader to a BufferedReader during script loading. The file 
reader throws an exception when the file path contains spaces (which are 
encoded). The result was that scripts aren't loaded and pages only showed an 
error message. Working with an InputStream solves this issue.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ScriptUtil.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ScriptUtil.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ScriptUtil.java?rev=1308896&r1=1308895&r2=1308896&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ScriptUtil.java 
(original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ScriptUtil.java Tue Apr  
3 13:36:03 2012
@@ -18,10 +18,11 @@
  
*******************************************************************************/
 package org.ofbiz.base.util;
 
+import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileReader;
-import java.net.MalformedURLException;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.net.URL;
 import java.util.Collection;
 import java.util.Collections;
@@ -115,12 +116,11 @@ public final class ScriptUtil {
      * 
      * @param filePath Script path and file name.
      * @return The compiled script, or <code>null</code> if the script engine 
does not support compilation.
-     * @throws FileNotFoundException
      * @throws IllegalArgumentException
      * @throws ScriptException
-     * @throws MalformedURLException
+     * @throws IOException
      */
-    public static CompiledScript compileScriptFile(String filePath) throws 
FileNotFoundException, ScriptException, MalformedURLException {
+    public static CompiledScript compileScriptFile(String filePath) throws 
ScriptException, IOException {
         Assert.notNull("filePath", filePath);
         CompiledScript script = parsedScripts.get(filePath);
         if (script == null) {
@@ -132,7 +132,7 @@ public final class ScriptUtil {
             try {
                 Compilable compilableEngine = (Compilable) engine;
                 URL scriptUrl = FlexibleLocation.resolveLocation(filePath);
-                FileReader reader = new FileReader(new 
File(scriptUrl.getFile()));
+                BufferedReader reader = new BufferedReader(new 
InputStreamReader(scriptUrl.openStream()));
                 script = compilableEngine.compile(reader);
                 if (Debug.verboseOn()) {
                     Debug.logVerbose("Compiled script " + filePath + " using 
engine " + engine.getClass().getName(), module);
@@ -345,13 +345,12 @@ public final class ScriptUtil {
      * @param scriptContext Script execution context.
      * @param args Function/method arguments.
      * @return The script result.
-     * @throws ScriptException 
-     * @throws MalformedURLException 
-     * @throws FileNotFoundException 
-     * @throws NoSuchMethodException 
+     * @throws ScriptException
+     * @throws NoSuchMethodException
+     * @throws IOException
      * @throws IllegalArgumentException
      */
-    public static Object executeScript(String filePath, String functionName, 
ScriptContext scriptContext, Object[] args) throws FileNotFoundException, 
MalformedURLException, ScriptException, NoSuchMethodException {
+    public static Object executeScript(String filePath, String functionName, 
ScriptContext scriptContext, Object[] args) throws ScriptException, 
NoSuchMethodException, IOException {
         Assert.notNull("filePath", filePath, "scriptContext", scriptContext);
         scriptContext.setAttribute(ScriptEngine.FILENAME, filePath, 
ScriptContext.ENGINE_SCOPE);
         if (functionName == null) {


Reply via email to