Author: sgoeschl Date: Sat Aug 14 19:31:45 2010 New Revision: 985572 URL: http://svn.apache.org/viewvc?rev=985572&view=rev Log: Storing the worker thread used for asynchronous in field and providing protected getter.
Modified: commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/DefaultExecutor.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=985572&r1=985571&r2=985572&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 Sat Aug 14 19:31:45 2010 @@ -63,6 +63,9 @@ public class DefaultExecutor implements /** optional cleanup of started processes */ private ProcessDestroyer processDestroyer; + /** worker thread for asynchronous execution */ + private Thread executorThread; + /** * Default constructor creating a default <code>PumpStreamHandler</code> * and sets the working directory of the subprocess to the current @@ -178,11 +181,7 @@ public class DefaultExecutor implements throw new IOException(workingDirectory + " doesn't exist."); } - new Thread() { - - /** - * @see java.lang.Thread#run() - */ + executorThread = new Thread() { public void run() { int exitValue = Executor.INVALID_EXITVALUE; try { @@ -194,9 +193,10 @@ public class DefaultExecutor implements handler.onProcessFailed(new ExecuteException("Execution failed", exitValue, e)); } } - }.start(); - } + }; + getExecutorThread().start(); + } /** @see org.apache.commons.exec.Executor#setExitValue(int) */ public void setExitValue(final int value) { @@ -255,6 +255,15 @@ public class DefaultExecutor implements } /** + * Get the worker thread being used for asynchronous execution. + * + * @return the worker thread + */ + protected Thread getExecutorThread() { + return executorThread; + } + + /** * Close the streams belonging to the given Process. In the * original implementation all exceptions were dropped which * is probably not a good thing. On the other hand the signature