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