java.util.concurrent.ExecutionException: org.artofsolving.jodconverter.office.OfficeException: could not terminate
Opened this issue · 1 comments
GoogleCodeExporter commented
Before creating a new issue, please post your problem to the group for
discussion first.
http://groups.google.com/group/jodconverter
What steps will reproduce the problem?
1. We are using LibreOffice 3.4 on Windows
2. SigarProcessManage is used as process manager
3. ProcessPoolOfficemanage is used as office manager.
4. Currently only one socket connection with port 2002 is running.
5. The execution of a custom conversion task works, and completes successfully
6. We call officemanager.stop() at the end of the process
7. It throws the info message as
INFO: disconnected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
8. I can still see that soffice.bin is running from task manager ( or tasklist
command)
9. It hangs for about 2.5 minutes.
10 Then throws the following error.
Mar 22, 2012 6:02:18 PM
org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop
INFO: stopping
Mar 22, 2012 6:02:18 PM org.artofsolving.jodconverter.office.OfficeConnection$1
disposing
INFO: disconnected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
Mar 22, 2012 6:04:18 PM org.artofsolving.jodconverter.office.OfficeProcess
forciblyTerminate
INFO: trying to forcibly terminate process:
'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' (pid 4944)
Exception in thread "main"
org.artofsolving.jodconverter.office.OfficeException: failed to start and
connect
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.stopAndWait(ManagedOfficeProcess.java:77)
at org.artofsolving.jodconverter.office.PooledOfficeManager.stop(PooledOfficeManager.java:108)
at org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.stop(ProcessPoolOfficeManager.java:91)
at com.lexmark.pws.aps.pe.handler.impl.OfficeConnectorUtil.closeConnection(OfficeConnectorUtil.java:86)
at com.lexmark.pws.aps.pe.ThumbnailEngine.main(ThumbnailEngine.java:65)
Caused by: java.util.concurrent.ExecutionException:
org.artofsolving.jodconverter.office.OfficeException: could not terminate
process
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.stopAndWait(ManagedOfficeProcess.java:75)
... 4 more
Caused by: org.artofsolving.jodconverter.office.OfficeException: could not
terminate process
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doTerminateProcess(ManagedOfficeProcess.java:174)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doEnsureProcessExited(ManagedOfficeProcess.java:164)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStopProcess(ManagedOfficeProcess.java:156)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.access$100(ManagedOfficeProcess.java:31)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess$2.run(ManagedOfficeProcess.java:71)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: kill failed
at org.artofsolving.jodconverter.process.SigarProcessManager.kill(SigarProcessManager.java:62)
at org.artofsolving.jodconverter.office.OfficeProcess.forciblyTerminate(OfficeProcess.java:207)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doTerminateProcess(ManagedOfficeProcess.java:171)
... 10 more
Caused by: org.hyperic.sigar.SigarException: KILL: invalid signal specification
at org.hyperic.sigar.Sigar.kill(Sigar.java:279)
at org.artofsolving.jodconverter.process.SigarProcessManager.kill(SigarProcessManager.java:60)
... 12 more
Java Result: 1
What am I doing wrong. Should I issue another kill command to stop the
soffice.bin ?
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Please provide any additional information below.
Original issue reported on code.google.com by papab...@gmail.com
on 22 Mar 2012 at 1:04
GoogleCodeExporter commented
I have figured out how to avoid this, though not quiet sure if the best way to
do.
ProcessManager processManager = new SigarProcessManager();
Sigar sigar = new Sigar();
long servicePid = processManager.findPid(new ProcessQuery("soffice.bin", ""));
//System.out.println(" Process id = " + servicePid);
// 9 = SIGTERM signal
sigar.kill(servicePid, 9);
This stops the soffice.bin.
Original comment by papab...@gmail.com
on 28 Mar 2012 at 2:05