Jodconverter 3.0 - Openoffice process fails to terminate.

475 views
Skip to first unread message

Girish

unread,
Aug 19, 2010, 10:42:14 AM8/19/10
to JODConverter
Hi,

We are using Jod Converter 3.0 for bulk documents convertions. I am
using following code to convert the doc into pdf.

officeManager = new DefaultOfficeManagerConfiguration()
.setOfficeHome(office_home)
.setConnectionProtocol(OfficeConnectionProtocol.SOCKET)
.setPipeNames("office1")
.setTaskExecutionTimeout(300000L)
.buildOfficeManager();

officeManager.start();
OfficeDocumentConverter converter = new
OfficeDocumentConverter(officeManager);
converter.convert(inputFile, outputFile, formatPDF);
officeManager.stop();

While load testing, i observed that after few conversions, openoffice
process fails to teminate and following error is being thrown until i
manually terminate the openoffice process. I observed this on Windows
XP.

org.artofsolving.jodconverter.office.OfficeException: failed to start
and connect
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.stopAndWait(ManagedOfficeProcess.java:
74)
at
org.artofsolving.jodconverter.office.PooledOfficeManager.stop(PooledOfficeManager.java:
109)
at
org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.stop(ProcessPoolOfficeManager.java:
88)
at
com.bt.wfmt.dms.render.thread.OpenOfficeRendererImpl.onMessage(OpenOfficeRendererImpl.java:
248)
at
com.bt.wfmt.dms.render.thread.OpenOfficeRendererImpl.run(OpenOfficeRendererImpl.java:
116)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.util.concurrent.ExecutionException:
org.artofsolving.jodconverter.office.OfficeException: could not
terminate process
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205)
at java.util.concurrent.FutureTask.get(FutureTask.java:80)
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.stopAndWait(ManagedOfficeProcess.java:
72)
... 7 more
Caused by: org.artofsolving.jodconverter.office.OfficeException: could
not terminate process
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.doTerminateProcess(ManagedOfficeProcess.java:
155)
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.doEnsureProcessExited(ManagedOfficeProcess.java:
145)
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStopProcess(ManagedOfficeProcess.java:
137)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.access
$100(ManagedOfficeProcess.java:31)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess
$2.run(ManagedOfficeProcess.java:68)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
417)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
... 3 more
Caused by: java.lang.NullPointerException
at java.lang.ProcessBuilder.start(ProcessBuilder.java:441)
at
org.artofsolving.jodconverter.process.WindowsProcessManager.execute(WindowsProcessManager.java:
51)
at
org.artofsolving.jodconverter.process.WindowsProcessManager.kill(WindowsProcessManager.java:
37)
at
org.artofsolving.jodconverter.office.OfficeProcess.forciblyTerminate(OfficeProcess.java:
185)
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.doTerminateProcess(ManagedOfficeProcess.java:
152)
... 10 more

is anything wrong here? Thanks in advance.

Best Regards,
Girish

Mirko Nasato

unread,
Aug 19, 2010, 10:59:16 AM8/19/10
to JODConverter
Looks like WindowsProcessManager.kill() doesn't work properly on your
machine. That's always the risk with platform-specific
implementations. As a work-around you can try the
PureJavaProcessManager:

officeManager = new DefaultOfficeManagerConfiguration()
.setProcessManager(new PureJavaProcessManager())
...

As for the issue with WindowsProcessManager, if ProcessBuilder.start()
throws a NullPointerException then the passed pid must be null, so
it's actually WindowsProcessManager.findPid() that didn't work as
expected. Do you see something like "pid null" in your logs? Maybe the
output of "wmic process get CommandLine,ProcessId" is in a different
format. What Windows version are you on?

Thanks

Mirko

Girish

unread,
Aug 20, 2010, 9:13:31 AM8/20/10
to JODConverter

Thanks Mirko... I try your suggestion and check again.

I am using Windows XP Professional - Version 2002.

Best Regards,
Girish
Reply all
Reply to author
Forward
0 new messages