fix missing errorstream output in some situations

This commit is contained in:
Sebastian Sdorra
2012-05-08 22:12:51 +02:00
parent e85ff1317c
commit f6ff83dd88

View File

@@ -390,13 +390,11 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
private void execute(Process process) throws IOException
{
InputStream processIS = null;
InputStream processES = null;
ServletOutputStream servletOS = null;
try
{
processES = process.getErrorStream();
processErrorStreamAsync(processES);
processErrorStreamAsync(process);
processServletInput(process);
processIS = process.getInputStream();
servletOS = response.getOutputStream();
@@ -409,7 +407,6 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
finally
{
IOUtil.close(processIS);
IOUtil.close(processES);
IOUtil.close(servletOS);
}
}
@@ -506,23 +503,31 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
* Method description
*
*
* @param errorStream
*
* @param process
*/
private void processErrorStreamAsync(final InputStream errorStream)
private void processErrorStreamAsync(final Process process)
{
new Thread(new Runnable()
{
@Override
public void run()
{
InputStream errorStream = null;
try
{
errorStream = process.getErrorStream();
processErrorStream(errorStream);
}
catch (IOException ex)
{
logger.error("could not read errorstream", ex);
}
finally
{
IOUtil.close(errorStream);
}
}
}).start();
}