mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +01:00
process errorstream async to improve errorhandling
This commit is contained in:
@@ -35,6 +35,7 @@ package sonia.scm.web.cgi;
|
|||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
|
|
||||||
|
import java.util.logging.Level;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -260,11 +261,11 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
processIS = process.getInputStream();
|
|
||||||
processES = process.getErrorStream();
|
processES = process.getErrorStream();
|
||||||
|
processErrorStreamAsync(processES);
|
||||||
processServletInput(process);
|
processServletInput(process);
|
||||||
|
processIS = process.getInputStream();
|
||||||
processProcessInputStream(processIS);
|
processProcessInputStream(processIS);
|
||||||
processErrorStream(processES);
|
|
||||||
waitForFinish(process);
|
waitForFinish(process);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@@ -273,6 +274,20 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
|
|||||||
IOUtil.close(processES);
|
IOUtil.close(processES);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void processErrorStreamAsync( final InputStream errorStream )
|
||||||
|
{
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
processErrorStream(errorStream);
|
||||||
|
} catch (IOException ex) {
|
||||||
|
logger.error( "could not read errorstream", ex );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
|
|||||||
Reference in New Issue
Block a user