git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270268 13f79535-47bb-0310-9956-ffa450edef68master
@@ -24,34 +24,34 @@ import org.apache.myrmidon.api.TaskException; | |||
* @author <a href="mailto:sbailliez@imediation.com">Stephane Bailliez</a> | |||
* @see Execute | |||
*/ | |||
public class ExecuteWatchdog implements Runnable | |||
public class ExecuteWatchdog | |||
implements Runnable | |||
{ | |||
/** | |||
* say whether or not the watchog is currently monitoring a process | |||
*/ | |||
private boolean watch = false; | |||
private boolean m_watch; | |||
/** | |||
* exception that might be thrown during the process execution | |||
*/ | |||
private Exception caught = null; | |||
private Exception m_caught; | |||
/** | |||
* say whether or not the process was killed due to running overtime | |||
*/ | |||
private boolean killedProcess = false; | |||
private boolean m_killedProcess; | |||
/** | |||
* the process to execute and watch for duration | |||
*/ | |||
private Process process; | |||
private Process m_process; | |||
/** | |||
* timeout duration. Once the process running time exceeds this it should be | |||
* killed | |||
*/ | |||
private int timeout; | |||
private int m_timeout; | |||
/** | |||
* Creates a new watchdog with a given timeout. | |||
@@ -65,7 +65,7 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
throw new IllegalArgumentException( "timeout lesser than 1." ); | |||
} | |||
this.timeout = timeout; | |||
this.m_timeout = timeout; | |||
} | |||
/** | |||
@@ -76,7 +76,7 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
public boolean isWatching() | |||
{ | |||
return watch; | |||
return m_watch; | |||
} | |||
/** | |||
@@ -91,10 +91,10 @@ public class ExecuteWatchdog implements Runnable | |||
public void checkException() | |||
throws TaskException | |||
{ | |||
if( caught != null ) | |||
if( m_caught != null ) | |||
{ | |||
throw new TaskException( "Exception in ExecuteWatchdog.run: " | |||
+ caught.getMessage(), caught ); | |||
+ m_caught.getMessage(), m_caught ); | |||
} | |||
} | |||
@@ -106,7 +106,7 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
public boolean killedProcess() | |||
{ | |||
return killedProcess; | |||
return m_killedProcess; | |||
} | |||
/** | |||
@@ -118,9 +118,9 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
// This isn't a Task, don't have a Project object to log. | |||
// project.log("ExecuteWatchdog: timeout = "+timeout+" msec", Project.MSG_VERBOSE); | |||
final long until = System.currentTimeMillis() + timeout; | |||
final long until = System.currentTimeMillis() + m_timeout; | |||
long now; | |||
while( watch && until > ( now = System.currentTimeMillis() ) ) | |||
while( m_watch && until > ( now = System.currentTimeMillis() ) ) | |||
{ | |||
try | |||
{ | |||
@@ -138,22 +138,22 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
// We must check if the process was not stopped | |||
// before being here | |||
process.exitValue(); | |||
m_process.exitValue(); | |||
} | |||
catch( IllegalThreadStateException e ) | |||
{ | |||
// the process is not terminated, if this is really | |||
// a timeout and not a manual stop then kill it. | |||
if( watch ) | |||
if( m_watch ) | |||
{ | |||
killedProcess = true; | |||
process.destroy(); | |||
m_killedProcess = true; | |||
m_process.destroy(); | |||
} | |||
} | |||
} | |||
catch( Exception e ) | |||
{ | |||
caught = e; | |||
m_caught = e; | |||
} | |||
finally | |||
{ | |||
@@ -175,14 +175,14 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
throw new NullPointerException( "process is null." ); | |||
} | |||
if( this.process != null ) | |||
if( this.m_process != null ) | |||
{ | |||
throw new IllegalStateException( "Already running." ); | |||
} | |||
this.caught = null; | |||
this.killedProcess = false; | |||
this.watch = true; | |||
this.process = process; | |||
this.m_caught = null; | |||
this.m_killedProcess = false; | |||
this.m_watch = true; | |||
this.m_process = process; | |||
final Thread thread = new Thread( this, "WATCHDOG" ); | |||
thread.setDaemon( true ); | |||
thread.start(); | |||
@@ -194,7 +194,7 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
public synchronized void stop() | |||
{ | |||
watch = false; | |||
m_watch = false; | |||
notifyAll(); | |||
} | |||
@@ -203,8 +203,8 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
protected void cleanUp() | |||
{ | |||
watch = false; | |||
process = null; | |||
m_watch = false; | |||
m_process = null; | |||
} | |||
} | |||
@@ -19,18 +19,20 @@ import org.apache.myrmidon.api.TaskException; | |||
* | |||
* @author thomas.haas@softwired-inc.com | |||
*/ | |||
public class PumpStreamHandler implements ExecuteStreamHandler | |||
public class PumpStreamHandler | |||
implements ExecuteStreamHandler | |||
{ | |||
private Thread errorThread; | |||
private Thread m_errorThread; | |||
private Thread m_inputThread; | |||
private Thread inputThread; | |||
private OutputStream m_output; | |||
private OutputStream m_error; | |||
private OutputStream out, err; | |||
public PumpStreamHandler( OutputStream out, OutputStream err ) | |||
public PumpStreamHandler( final OutputStream output, | |||
final OutputStream error ) | |||
{ | |||
this.out = out; | |||
this.err = err; | |||
m_output = output; | |||
m_error = error; | |||
} | |||
public PumpStreamHandler( OutputStream outAndErr ) | |||
@@ -45,7 +47,7 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
public void setProcessErrorStream( InputStream is ) | |||
{ | |||
createProcessErrorPump( is, err ); | |||
createProcessErrorPump( is, m_error ); | |||
} | |||
public void setProcessInputStream( OutputStream os ) | |||
@@ -54,13 +56,13 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
public void setProcessOutputStream( InputStream is ) | |||
{ | |||
createProcessOutputPump( is, out ); | |||
createProcessOutputPump( is, m_output ); | |||
} | |||
public void start() | |||
{ | |||
inputThread.start(); | |||
errorThread.start(); | |||
m_inputThread.start(); | |||
m_errorThread.start(); | |||
} | |||
public void stop() | |||
@@ -68,28 +70,28 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
{ | |||
try | |||
{ | |||
inputThread.join(); | |||
m_inputThread.join(); | |||
} | |||
catch( InterruptedException e ) | |||
{ | |||
} | |||
try | |||
{ | |||
errorThread.join(); | |||
m_errorThread.join(); | |||
} | |||
catch( InterruptedException e ) | |||
{ | |||
} | |||
try | |||
{ | |||
err.flush(); | |||
m_error.flush(); | |||
} | |||
catch( IOException e ) | |||
{ | |||
} | |||
try | |||
{ | |||
out.flush(); | |||
m_output.flush(); | |||
} | |||
catch( IOException e ) | |||
{ | |||
@@ -98,22 +100,22 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
protected OutputStream getErr() | |||
{ | |||
return err; | |||
return m_error; | |||
} | |||
protected OutputStream getOut() | |||
{ | |||
return out; | |||
return m_output; | |||
} | |||
protected void createProcessErrorPump( InputStream is, OutputStream os ) | |||
{ | |||
errorThread = createPump( is, os ); | |||
m_errorThread = createPump( is, os ); | |||
} | |||
protected void createProcessOutputPump( InputStream is, OutputStream os ) | |||
{ | |||
inputThread = createPump( is, os ); | |||
m_inputThread = createPump( is, os ); | |||
} | |||
/** | |||
@@ -124,11 +126,11 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
* @param os Description of Parameter | |||
* @return Description of the Returned Value | |||
*/ | |||
protected Thread createPump( InputStream is, OutputStream os ) | |||
protected Thread createPump( final InputStream input, | |||
final OutputStream output ) | |||
{ | |||
final Thread result = new Thread( new StreamPumper( is, os ) ); | |||
final Thread result = new Thread( new StreamPumper( input, output ) ); | |||
result.setDaemon( true ); | |||
return result; | |||
} | |||
} |
@@ -24,34 +24,34 @@ import org.apache.myrmidon.api.TaskException; | |||
* @author <a href="mailto:sbailliez@imediation.com">Stephane Bailliez</a> | |||
* @see Execute | |||
*/ | |||
public class ExecuteWatchdog implements Runnable | |||
public class ExecuteWatchdog | |||
implements Runnable | |||
{ | |||
/** | |||
* say whether or not the watchog is currently monitoring a process | |||
*/ | |||
private boolean watch = false; | |||
private boolean m_watch; | |||
/** | |||
* exception that might be thrown during the process execution | |||
*/ | |||
private Exception caught = null; | |||
private Exception m_caught; | |||
/** | |||
* say whether or not the process was killed due to running overtime | |||
*/ | |||
private boolean killedProcess = false; | |||
private boolean m_killedProcess; | |||
/** | |||
* the process to execute and watch for duration | |||
*/ | |||
private Process process; | |||
private Process m_process; | |||
/** | |||
* timeout duration. Once the process running time exceeds this it should be | |||
* killed | |||
*/ | |||
private int timeout; | |||
private int m_timeout; | |||
/** | |||
* Creates a new watchdog with a given timeout. | |||
@@ -65,7 +65,7 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
throw new IllegalArgumentException( "timeout lesser than 1." ); | |||
} | |||
this.timeout = timeout; | |||
this.m_timeout = timeout; | |||
} | |||
/** | |||
@@ -76,7 +76,7 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
public boolean isWatching() | |||
{ | |||
return watch; | |||
return m_watch; | |||
} | |||
/** | |||
@@ -91,10 +91,10 @@ public class ExecuteWatchdog implements Runnable | |||
public void checkException() | |||
throws TaskException | |||
{ | |||
if( caught != null ) | |||
if( m_caught != null ) | |||
{ | |||
throw new TaskException( "Exception in ExecuteWatchdog.run: " | |||
+ caught.getMessage(), caught ); | |||
+ m_caught.getMessage(), m_caught ); | |||
} | |||
} | |||
@@ -106,7 +106,7 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
public boolean killedProcess() | |||
{ | |||
return killedProcess; | |||
return m_killedProcess; | |||
} | |||
/** | |||
@@ -118,9 +118,9 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
// This isn't a Task, don't have a Project object to log. | |||
// project.log("ExecuteWatchdog: timeout = "+timeout+" msec", Project.MSG_VERBOSE); | |||
final long until = System.currentTimeMillis() + timeout; | |||
final long until = System.currentTimeMillis() + m_timeout; | |||
long now; | |||
while( watch && until > ( now = System.currentTimeMillis() ) ) | |||
while( m_watch && until > ( now = System.currentTimeMillis() ) ) | |||
{ | |||
try | |||
{ | |||
@@ -138,22 +138,22 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
// We must check if the process was not stopped | |||
// before being here | |||
process.exitValue(); | |||
m_process.exitValue(); | |||
} | |||
catch( IllegalThreadStateException e ) | |||
{ | |||
// the process is not terminated, if this is really | |||
// a timeout and not a manual stop then kill it. | |||
if( watch ) | |||
if( m_watch ) | |||
{ | |||
killedProcess = true; | |||
process.destroy(); | |||
m_killedProcess = true; | |||
m_process.destroy(); | |||
} | |||
} | |||
} | |||
catch( Exception e ) | |||
{ | |||
caught = e; | |||
m_caught = e; | |||
} | |||
finally | |||
{ | |||
@@ -175,14 +175,14 @@ public class ExecuteWatchdog implements Runnable | |||
{ | |||
throw new NullPointerException( "process is null." ); | |||
} | |||
if( this.process != null ) | |||
if( this.m_process != null ) | |||
{ | |||
throw new IllegalStateException( "Already running." ); | |||
} | |||
this.caught = null; | |||
this.killedProcess = false; | |||
this.watch = true; | |||
this.process = process; | |||
this.m_caught = null; | |||
this.m_killedProcess = false; | |||
this.m_watch = true; | |||
this.m_process = process; | |||
final Thread thread = new Thread( this, "WATCHDOG" ); | |||
thread.setDaemon( true ); | |||
thread.start(); | |||
@@ -194,7 +194,7 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
public synchronized void stop() | |||
{ | |||
watch = false; | |||
m_watch = false; | |||
notifyAll(); | |||
} | |||
@@ -203,8 +203,8 @@ public class ExecuteWatchdog implements Runnable | |||
*/ | |||
protected void cleanUp() | |||
{ | |||
watch = false; | |||
process = null; | |||
m_watch = false; | |||
m_process = null; | |||
} | |||
} | |||
@@ -19,18 +19,20 @@ import org.apache.myrmidon.api.TaskException; | |||
* | |||
* @author thomas.haas@softwired-inc.com | |||
*/ | |||
public class PumpStreamHandler implements ExecuteStreamHandler | |||
public class PumpStreamHandler | |||
implements ExecuteStreamHandler | |||
{ | |||
private Thread errorThread; | |||
private Thread m_errorThread; | |||
private Thread m_inputThread; | |||
private Thread inputThread; | |||
private OutputStream m_output; | |||
private OutputStream m_error; | |||
private OutputStream out, err; | |||
public PumpStreamHandler( OutputStream out, OutputStream err ) | |||
public PumpStreamHandler( final OutputStream output, | |||
final OutputStream error ) | |||
{ | |||
this.out = out; | |||
this.err = err; | |||
m_output = output; | |||
m_error = error; | |||
} | |||
public PumpStreamHandler( OutputStream outAndErr ) | |||
@@ -45,7 +47,7 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
public void setProcessErrorStream( InputStream is ) | |||
{ | |||
createProcessErrorPump( is, err ); | |||
createProcessErrorPump( is, m_error ); | |||
} | |||
public void setProcessInputStream( OutputStream os ) | |||
@@ -54,13 +56,13 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
public void setProcessOutputStream( InputStream is ) | |||
{ | |||
createProcessOutputPump( is, out ); | |||
createProcessOutputPump( is, m_output ); | |||
} | |||
public void start() | |||
{ | |||
inputThread.start(); | |||
errorThread.start(); | |||
m_inputThread.start(); | |||
m_errorThread.start(); | |||
} | |||
public void stop() | |||
@@ -68,28 +70,28 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
{ | |||
try | |||
{ | |||
inputThread.join(); | |||
m_inputThread.join(); | |||
} | |||
catch( InterruptedException e ) | |||
{ | |||
} | |||
try | |||
{ | |||
errorThread.join(); | |||
m_errorThread.join(); | |||
} | |||
catch( InterruptedException e ) | |||
{ | |||
} | |||
try | |||
{ | |||
err.flush(); | |||
m_error.flush(); | |||
} | |||
catch( IOException e ) | |||
{ | |||
} | |||
try | |||
{ | |||
out.flush(); | |||
m_output.flush(); | |||
} | |||
catch( IOException e ) | |||
{ | |||
@@ -98,22 +100,22 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
protected OutputStream getErr() | |||
{ | |||
return err; | |||
return m_error; | |||
} | |||
protected OutputStream getOut() | |||
{ | |||
return out; | |||
return m_output; | |||
} | |||
protected void createProcessErrorPump( InputStream is, OutputStream os ) | |||
{ | |||
errorThread = createPump( is, os ); | |||
m_errorThread = createPump( is, os ); | |||
} | |||
protected void createProcessOutputPump( InputStream is, OutputStream os ) | |||
{ | |||
inputThread = createPump( is, os ); | |||
m_inputThread = createPump( is, os ); | |||
} | |||
/** | |||
@@ -124,11 +126,11 @@ public class PumpStreamHandler implements ExecuteStreamHandler | |||
* @param os Description of Parameter | |||
* @return Description of the Returned Value | |||
*/ | |||
protected Thread createPump( InputStream is, OutputStream os ) | |||
protected Thread createPump( final InputStream input, | |||
final OutputStream output ) | |||
{ | |||
final Thread result = new Thread( new StreamPumper( is, os ) ); | |||
final Thread result = new Thread( new StreamPumper( input, output ) ); | |||
result.setDaemon( true ); | |||
return result; | |||
} | |||
} |