You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2013/07/23 22:14:03 UTC

svn commit: r1506255 - /uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/RogueProcessReaper.java

Author: cwiklik
Date: Tue Jul 23 20:14:03 2013
New Revision: 1506255

URL: http://svn.apache.org/r1506255
Log:
UIMA-3101 close reader when done processing stream

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/RogueProcessReaper.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/RogueProcessReaper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/RogueProcessReaper.java?rev=1506255&r1=1506254&r2=1506255&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/RogueProcessReaper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/RogueProcessReaper.java Tue Jul 23 20:14:03 2013
@@ -295,6 +295,8 @@ public class RogueProcessReaper {
     }
     new Thread(new Runnable() {
       public void run() {
+    	  InputStream is = null;
+    	  BufferedReader reader = null;
         try {
           String[] repearScriptCommand = new String[] { reaperScript, pid };
           ProcessBuilder pb = new ProcessBuilder(repearScriptCommand);
@@ -316,14 +318,14 @@ public class RogueProcessReaper {
                     + pid + " Owned by:" + user + " Command:" + sb.toString());
 
           }
-          InputStream is = shellProcess.getInputStream();
-          BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+          is = shellProcess.getInputStream();
+          reader = new BufferedReader(new InputStreamReader(is));
 
           // read the next line from stdout and stderr
           while (reader.readLine() != null) {
             // dont care about the output, just drain the buffers
           }
-          is.close();
+         
           sb.setLength(0);
 
           if (logger == null) {
@@ -338,10 +340,15 @@ public class RogueProcessReaper {
         } catch (Exception e) {
           logger.error(methodName, null, e);
         } finally {
+        	
           synchronized (this) {
             processMap.remove(pid);
           }
-
+          if ( reader != null ) {
+        	  try {
+            	  reader.close();
+        	  } catch( Exception exx){}
+          }
         }
       }
     }).start();