diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/Office2PdfPageConverter.java b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/Office2PdfPageConverter.java index c8ca293cfa9ed207921528622a2eac70e14f42aa..0253b9af729d7cdcc2074489f1f19dfdb4b064e0 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/Office2PdfPageConverter.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/presentation/imp/Office2PdfPageConverter.java @@ -59,18 +59,22 @@ public abstract class Office2PdfPageConverter { log.info(String.format("Calling conversion script %s.", presOfficeConversionExec)); - NuProcessBuilder officeConverterExec = new NuProcessBuilder(Arrays.asList(presOfficeConversionExec, presentationFile.getAbsolutePath(), output.getAbsolutePath())); + NuProcessBuilder officeConverterExec = new NuProcessBuilder(Arrays.asList("timeout", conversionTimeout + "s", "/bin/sh", "-c", + "\""+presOfficeConversionExec + "\" \"" + presentationFile.getAbsolutePath() + "\" \"" + output.getAbsolutePath()+"\"")); Office2PdfConverterHandler office2PdfConverterHandler = new Office2PdfConverterHandler(); - officeConverterExec.setProcessListener(office2PdfConverterHandler); NuProcess process = officeConverterExec.start(); try { - process.waitFor(conversionTimeout, TimeUnit.SECONDS); + process.waitFor(conversionTimeout + 1, TimeUnit.SECONDS); } catch (InterruptedException e) { log.error("InterruptedException while counting PDF pages {}", presentationFile.getName(), e); } + if(office2PdfConverterHandler.isCommandTimeout()) { + log.error("Command execution ({}) exceeded the {} secs timeout for {}.",presOfficeConversionExec, conversionTimeout, presentationFile.getName()); + } + if(!office2PdfConverterHandler.isCommandSuccessful()) { throw new Exception(String.format("Error while executing conversion script %s.", presOfficeConversionExec)); }