Closed GoogleCodeExporter closed 9 years ago
Duplicate of issue #101
I'm still not clear how it can get to a state where it kills a process that
wasn't started properly. If you have more details on this please do let me know.
Original comment by mirko.na...@gmail.com
on 19 Feb 2012 at 9:56
If it is still actual problem - I think it may be helpful to extend code
provided above.
This problem occurs when jvm or server-process was killed (for example by the
console - pkill -9 -f java), without stopping soffice process. So, when we
start it again and OfficeProcess starts -existingPid != PID_UNKNOWN = true, and
OfficeProcess throws exception in line 67. Because of it - long pid =
PID_UNKNOWN. And when method forciblyTerminate(..) executes than fires
processManager.kill(process, -1);
This was said in the first comment.
But if we only retrurns -1 when pid=PID_UNKNOWN, then all of the subsequent
executions will not work.
So you can do something like this in forciblyTerminate(..) method:
if(pid!=PID_UNKNOWN) {
processManager.kill(process, pid);
return getExitCode(retryInterval, retryTimeout);
} else {
long blockedPid = processManager.findPid(new ProcessQuery("soffice.bin", unoUrl.getAcceptString()));
logger.info(String.format("blocking process found: '" + blockedPid));
if (blockedPid > -1) {
processManager.kill(process, blockedPid);
}
return -1;
}
I do not know if this is correct decision, but it works for me.
Original comment by mn.zhavz...@gmail.com
on 25 Feb 2013 at 11:21
Original issue reported on code.google.com by
cola_co...@ki.tng.de
on 13 Feb 2012 at 5:06