Set timeoout value rather than passing in watchdog git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270358 13f79535-47bb-0310-9956-ffa450edef68master
@@ -17,7 +17,6 @@ import java.io.StringReader; | |||||
import java.util.Iterator; | import java.util.Iterator; | ||||
import java.util.Properties; | import java.util.Properties; | ||||
import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
import org.apache.myrmidon.framework.exec.ExecuteWatchdog; | |||||
import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
import org.apache.tools.ant.Task; | import org.apache.tools.ant.Task; | ||||
import org.apache.tools.ant.types.Argument; | import org.apache.tools.ant.types.Argument; | ||||
@@ -220,10 +219,6 @@ public class ExecTask extends Task | |||||
final int err = exe.execute(); | final int err = exe.execute(); | ||||
//test for and handle a forced process death | //test for and handle a forced process death | ||||
if( exe.killedProcess() ) | |||||
{ | |||||
getLogger().warn( "Timeout: killed the sub-process" ); | |||||
} | |||||
maybeSetResultPropertyValue( err ); | maybeSetResultPropertyValue( err ); | ||||
if( 0 != err ) | if( 0 != err ) | ||||
{ | { | ||||
@@ -283,7 +278,7 @@ public class ExecTask extends Task | |||||
* @return Description of the Returned Value | * @return Description of the Returned Value | ||||
* @exception TaskException Description of Exception | * @exception TaskException Description of Exception | ||||
*/ | */ | ||||
protected PumpStreamHandler createHandler() | |||||
private void setupOutput( final Execute exe ) | |||||
throws TaskException | throws TaskException | ||||
{ | { | ||||
if( m_outputFile != null ) | if( m_outputFile != null ) | ||||
@@ -292,7 +287,8 @@ public class ExecTask extends Task | |||||
{ | { | ||||
m_ouput = new FileOutputStream( m_outputFile ); | m_ouput = new FileOutputStream( m_outputFile ); | ||||
getLogger().debug( "Output redirected to " + m_outputFile ); | getLogger().debug( "Output redirected to " + m_outputFile ); | ||||
return new PumpStreamHandler( m_ouput ); | |||||
exe.setOutput( m_ouput ); | |||||
exe.setError( m_ouput ); | |||||
} | } | ||||
catch( FileNotFoundException fne ) | catch( FileNotFoundException fne ) | ||||
{ | { | ||||
@@ -307,29 +303,16 @@ public class ExecTask extends Task | |||||
{ | { | ||||
m_byteArrayOutput = new ByteArrayOutputStream(); | m_byteArrayOutput = new ByteArrayOutputStream(); | ||||
getLogger().debug( "Output redirected to ByteArray" ); | getLogger().debug( "Output redirected to ByteArray" ); | ||||
return new PumpStreamHandler( m_byteArrayOutput ); | |||||
exe.setOutput( m_byteArrayOutput ); | |||||
exe.setError( m_byteArrayOutput ); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
return new LogStreamHandler( this, | |||||
Project.MSG_INFO, Project.MSG_WARN ); | |||||
exe.setOutput( new LogOutputStream( this, Project.MSG_INFO ) ); | |||||
exe.setError( new LogOutputStream( this, Project.MSG_WARN ) ); | |||||
} | } | ||||
} | } | ||||
/** | |||||
* Create the Watchdog to kill a runaway process. | |||||
* | |||||
* @return Description of the Returned Value | |||||
* @exception TaskException Description of Exception | |||||
*/ | |||||
protected ExecuteWatchdog createWatchdog() | |||||
throws TaskException | |||||
{ | |||||
if( m_timeout == null ) | |||||
return null; | |||||
return new ExecuteWatchdog( m_timeout.intValue() ); | |||||
} | |||||
/** | /** | ||||
* Flush the output stream - if there is one. | * Flush the output stream - if there is one. | ||||
*/ | */ | ||||
@@ -372,7 +355,12 @@ public class ExecTask extends Task | |||||
// show the command | // show the command | ||||
getLogger().debug( m_command.toString() ); | getLogger().debug( m_command.toString() ); | ||||
final Execute exe = new Execute( createHandler(), createWatchdog() ); | |||||
final Execute exe = new Execute(); | |||||
setupOutput( exe ); | |||||
if( null != m_timeout ) | |||||
{ | |||||
exe.setTimeout( m_timeout.intValue() ); | |||||
} | |||||
exe.setWorkingDirectory( m_workingDirectory ); | exe.setWorkingDirectory( m_workingDirectory ); | ||||
exe.setVMLauncher( m_useVMLauncher ); | exe.setVMLauncher( m_useVMLauncher ); | ||||
exe.setNewenvironment( m_newEnvironment ); | exe.setNewenvironment( m_newEnvironment ); | ||||
@@ -17,7 +17,6 @@ import java.io.StringReader; | |||||
import java.util.Iterator; | import java.util.Iterator; | ||||
import java.util.Properties; | import java.util.Properties; | ||||
import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
import org.apache.myrmidon.framework.exec.ExecuteWatchdog; | |||||
import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
import org.apache.tools.ant.Task; | import org.apache.tools.ant.Task; | ||||
import org.apache.tools.ant.types.Argument; | import org.apache.tools.ant.types.Argument; | ||||
@@ -220,10 +219,6 @@ public class ExecTask extends Task | |||||
final int err = exe.execute(); | final int err = exe.execute(); | ||||
//test for and handle a forced process death | //test for and handle a forced process death | ||||
if( exe.killedProcess() ) | |||||
{ | |||||
getLogger().warn( "Timeout: killed the sub-process" ); | |||||
} | |||||
maybeSetResultPropertyValue( err ); | maybeSetResultPropertyValue( err ); | ||||
if( 0 != err ) | if( 0 != err ) | ||||
{ | { | ||||
@@ -283,7 +278,7 @@ public class ExecTask extends Task | |||||
* @return Description of the Returned Value | * @return Description of the Returned Value | ||||
* @exception TaskException Description of Exception | * @exception TaskException Description of Exception | ||||
*/ | */ | ||||
protected PumpStreamHandler createHandler() | |||||
private void setupOutput( final Execute exe ) | |||||
throws TaskException | throws TaskException | ||||
{ | { | ||||
if( m_outputFile != null ) | if( m_outputFile != null ) | ||||
@@ -292,7 +287,8 @@ public class ExecTask extends Task | |||||
{ | { | ||||
m_ouput = new FileOutputStream( m_outputFile ); | m_ouput = new FileOutputStream( m_outputFile ); | ||||
getLogger().debug( "Output redirected to " + m_outputFile ); | getLogger().debug( "Output redirected to " + m_outputFile ); | ||||
return new PumpStreamHandler( m_ouput ); | |||||
exe.setOutput( m_ouput ); | |||||
exe.setError( m_ouput ); | |||||
} | } | ||||
catch( FileNotFoundException fne ) | catch( FileNotFoundException fne ) | ||||
{ | { | ||||
@@ -307,29 +303,16 @@ public class ExecTask extends Task | |||||
{ | { | ||||
m_byteArrayOutput = new ByteArrayOutputStream(); | m_byteArrayOutput = new ByteArrayOutputStream(); | ||||
getLogger().debug( "Output redirected to ByteArray" ); | getLogger().debug( "Output redirected to ByteArray" ); | ||||
return new PumpStreamHandler( m_byteArrayOutput ); | |||||
exe.setOutput( m_byteArrayOutput ); | |||||
exe.setError( m_byteArrayOutput ); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
return new LogStreamHandler( this, | |||||
Project.MSG_INFO, Project.MSG_WARN ); | |||||
exe.setOutput( new LogOutputStream( this, Project.MSG_INFO ) ); | |||||
exe.setError( new LogOutputStream( this, Project.MSG_WARN ) ); | |||||
} | } | ||||
} | } | ||||
/** | |||||
* Create the Watchdog to kill a runaway process. | |||||
* | |||||
* @return Description of the Returned Value | |||||
* @exception TaskException Description of Exception | |||||
*/ | |||||
protected ExecuteWatchdog createWatchdog() | |||||
throws TaskException | |||||
{ | |||||
if( m_timeout == null ) | |||||
return null; | |||||
return new ExecuteWatchdog( m_timeout.intValue() ); | |||||
} | |||||
/** | /** | ||||
* Flush the output stream - if there is one. | * Flush the output stream - if there is one. | ||||
*/ | */ | ||||
@@ -372,7 +355,12 @@ public class ExecTask extends Task | |||||
// show the command | // show the command | ||||
getLogger().debug( m_command.toString() ); | getLogger().debug( m_command.toString() ); | ||||
final Execute exe = new Execute( createHandler(), createWatchdog() ); | |||||
final Execute exe = new Execute(); | |||||
setupOutput( exe ); | |||||
if( null != m_timeout ) | |||||
{ | |||||
exe.setTimeout( m_timeout.intValue() ); | |||||
} | |||||
exe.setWorkingDirectory( m_workingDirectory ); | exe.setWorkingDirectory( m_workingDirectory ); | ||||
exe.setVMLauncher( m_useVMLauncher ); | exe.setVMLauncher( m_useVMLauncher ); | ||||
exe.setNewenvironment( m_newEnvironment ); | exe.setNewenvironment( m_newEnvironment ); | ||||