You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by sg...@apache.org on 2011/02/21 08:30:51 UTC

svn commit: r1072869 - in /commons/proper/exec/trunk/src: main/java/org/apache/commons/exec/DefaultExecutor.java main/java/org/apache/commons/exec/PumpStreamHandler.java test/java/org/apache/commons/exec/DefaultExecutorTest.java

Author: sgoeschl
Date: Mon Feb 21 07:30:50 2011
New Revision: 1072869

URL: http://svn.apache.org/viewvc?rev=1072869&view=rev
Log:
[EXEC-55] Set names for started threads and provide factory methods for thread creation

Modified:
    commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/DefaultExecutor.java
    commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java
    commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/DefaultExecutorTest.java

Modified: commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/DefaultExecutor.java
URL: http://svn.apache.org/viewvc/commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/DefaultExecutor.java?rev=1072869&r1=1072868&r2=1072869&view=diff
==============================================================================
--- commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/DefaultExecutor.java (original)
+++ commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/DefaultExecutor.java Mon Feb 21 07:30:50 2011
@@ -181,10 +181,12 @@ public class DefaultExecutor implements 
             throw new IOException(workingDirectory + " doesn't exist.");
         }
 
-        executorThread = new Thread() {
-            public void run() {
+        Runnable runnable = new Runnable()
+        {
+            public void run()
+            {
                 int exitValue = Executor.INVALID_EXITVALUE;
-                try {                    
+                try {
                     exitValue = executeInternal(command, environment, workingDirectory, streamHandler);
                     handler.onProcessComplete(exitValue);
                 } catch (ExecuteException e) {
@@ -195,6 +197,7 @@ public class DefaultExecutor implements 
             }
         };
 
+        this.executorThread = createThread(runnable, "Exec Default Executor");
         getExecutorThread().start();
     }
 
@@ -229,6 +232,18 @@ public class DefaultExecutor implements 
     }
 
     /**
+     * Factory method to create a thread waiting for the result of an
+     * asynchronous execution.
+     *
+     * @param runnable the runnable passed to the thread
+     * @param name the name of the thread
+     * @return the thread
+     */
+    protected Thread createThread(Runnable runnable, String name) {
+        return new Thread(runnable, name);
+    }
+
+    /**
      * Creates a process that runs a command.
      *
      * @param command

Modified: commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java?rev=1072869&r1=1072868&r2=1072869&view=diff
==============================================================================
--- commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java (original)
+++ commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java Mon Feb 21 07:30:50 2011
@@ -284,12 +284,11 @@ public class PumpStreamHandler implement
     protected Thread createPump(final InputStream is, final OutputStream os,
             final boolean closeWhenExhausted) {
         final Thread result = new Thread(new StreamPumper(is, os,
-                closeWhenExhausted));
+                closeWhenExhausted), "Exec Stream Pumper");
         result.setDaemon(true);
         return result;
     }
 
-
     /**
      * Creates a stream pumper to copy the given input stream to the given
      * output stream.
@@ -300,7 +299,7 @@ public class PumpStreamHandler implement
      */
     private Thread createSystemInPump(InputStream is, OutputStream os) {
         inputStreamPumper = new InputStreamPumper(is, os);
-        final Thread result = new Thread(inputStreamPumper);
+        final Thread result = new Thread(inputStreamPumper, "Exec Input Stream Pumper");
         result.setDaemon(true);
         return result;
     }

Modified: commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/DefaultExecutorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/DefaultExecutorTest.java?rev=1072869&r1=1072868&r2=1072869&view=diff
==============================================================================
--- commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/DefaultExecutorTest.java (original)
+++ commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/DefaultExecutorTest.java Mon Feb 21 07:30:50 2011
@@ -598,7 +598,6 @@ public class DefaultExecutorTest extends
         String environment = baos.toString().trim();
         assertTrue("Found no environment variables", environment.length() > 0);
         assertFalse(environment.indexOf("NEW_VAR") >= 0);
-        System.out.println(environment);
     }
 
     /**
@@ -961,8 +960,8 @@ public class DefaultExecutorTest extends
             int x;
             PipedInputStream pis = new PipedInputStream(pipedOutputStream);
             while ((x = pis.read()) >= 0) {
-                System.out.println("pis.available() " + pis.available());
-                System.out.println("x " + x);
+                // System.out.println("pis.available() " + pis.available());
+                // System.out.println("x " + x);
             }
             pis.close();
 
@@ -1003,8 +1002,8 @@ public class DefaultExecutorTest extends
             int x;
             PipedInputStream pis = new PipedInputStream(pipedOutputStream);
             while ((x = pis.read()) >= 0) {
-                System.out.println("pis.available() " + pis.available());
-                System.out.println("x " + x);
+                // System.out.println("pis.available() " + pis.available());
+                // System.out.println("x " + x);
             }
             pis.close();