try {
Process p = Runtime.getRuntime().exec(toStringArray(fillArguments(args)));
BufferedInputStream compilerErr = new BufferedInputStream(p.getErrorStream());
RunnableManager runnableManager = null;
try
{
runnableManager = (RunnableManager)m_serviceManager.lookup( RunnableManager.ROLE );
}
catch( final ServiceException se )
{
getLogger().error( "Cannot get RunnableManager", se );
throw new IOException( "Cannot get RunnableManager" );
}
final CountDown done = new CountDown( 1 );
StreamPumper errPumper = new StreamPumper(compilerErr, tmpErr, done);
runnableManager.execute( errPumper );
m_serviceManager.release( runnableManager );
p.waitFor();
exitValue = p.exitValue();