in taverna-server-webapp/src/main/java/org/apache/taverna/server/master/localworker/IdAwareForkRunFactory.java [419:456]
public void close() throws IOException, InterruptedException {
try {
if (process != null) {
log.info("about to close down subprocess");
channel.close();
int code = -1;
try {
try {
code = process.exitValue();
log.info("secure-fork process already dead?");
} catch (IllegalThreadStateException e) {
try {
code = process.waitFor();
} catch (InterruptedException e1) {
log.info("interrupted waiting for natural death of secure-fork process?!");
process.destroy();
code = process.waitFor();
}
}
} finally {
lastExitCode = code;
if (code > 128) {
log.info("secure-fork process died with signal="
+ (code - 128));
} else if (code >= 0) {
log.info("secure-fork process killed: code=" + code);
} else {
log.warn("secure-fork process not yet dead");
}
}
}
} finally {
process = null;
channel = null;
out.stop();
err.stop();
}
}