Author: kono
Date: 2012-07-23 12:48:53 -0700 (Mon, 23 Jul 2012)
New Revision: 29961

Modified:
   
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptCommandTask.java
   
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptTask.java
Log:
Script File will be closed in any situations.

Modified: 
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptCommandTask.java
===================================================================
--- 
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptCommandTask.java
        2012-07-23 19:09:22 UTC (rev 29960)
+++ 
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptCommandTask.java
        2012-07-23 19:48:53 UTC (rev 29961)
@@ -1,7 +1,9 @@
 package org.cytoscape.scripting.internal;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -44,7 +46,18 @@
                engine.put("args", argArray);
                
                // Execute
-               engine.eval(new FileReader(new File(filename)));
+               FileReader reader = null;
+               try {
+                       reader = new FileReader(new File(filename));
+                       engine.eval(reader);
+               } catch (FileNotFoundException e) {
+                       throw new IOException("Could not open the file.", e);
+               } finally {
+                       if(reader != null) {
+                               reader.close();
+                               reader = null;
+                       }
+               }
        }
 
 }

Modified: 
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptTask.java
===================================================================
--- 
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptTask.java
       2012-07-23 19:09:22 UTC (rev 29960)
+++ 
core3/impl/trunk/scripting-impl/src/main/java/org/cytoscape/scripting/internal/ExecuteScriptTask.java
       2012-07-23 19:48:53 UTC (rev 29961)
@@ -12,36 +12,43 @@
 import org.cytoscape.work.Tunable;
 import org.cytoscape.work.util.ListSingleSelection;
 
-
 /**
  * Use standard Java scripting mechanism to run script.
- *
+ * 
  */
 public class ExecuteScriptTask extends AbstractExecuteScriptTask {
 
        @Tunable(description = "Select a script file:", params = 
"fileCategory=SCRIPT;input=true")
        public File file;
-       
+
        @Tunable(description = "Select Scripting Language:")
        public ListSingleSelection<String> engineNames;
 
-       
        ExecuteScriptTask(final ScriptEngineManager manager, final CyAppAdapter 
cyAppAdapter) {
                super(manager, cyAppAdapter);
-               
+
                engineNames = new ListSingleSelection<String>(engineNameList);
                engineNames.setSelectedValue(engineNameList.get(0));
        }
 
        @Override
-       public void run(TaskMonitor taskMonitor) throws Exception {             
+       public void run(TaskMonitor taskMonitor) throws Exception {
                final ScriptEngineFactory engineFactory = 
name2engineMap.get(engineNames.getSelectedValue());
                final ScriptEngine engine = engineFactory.getScriptEngine();
 
                // Provide access to CyAppAdapter.
                engine.put("cyAppAdapter", cyAppAdapter);
-               
+
                // Execute
-               engine.eval(new FileReader(file));
+               FileReader reader = null;
+               try {
+                       reader = new FileReader(file);
+                       engine.eval(reader);
+               } finally {
+                       if (reader != null) {
+                               reader.close();
+                               reader = null;
+                       }
+               }
        }
 }

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to