From 243e646f7ce06b27974e5754f8895237a9bbd9df Mon Sep 17 00:00:00 2001 From: Matthai Kurian <matthai.kurian@frentix.com> Date: Mon, 13 Aug 2012 13:50:07 +0200 Subject: [PATCH] OO-326: ImageMagick verbose output also from stderr --- .../util/image/spi/ImageMagickHelper.java | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/olat/core/util/image/spi/ImageMagickHelper.java b/src/main/java/org/olat/core/util/image/spi/ImageMagickHelper.java index 8619c124dc5..9d8cd3dd21a 100644 --- a/src/main/java/org/olat/core/util/image/spi/ImageMagickHelper.java +++ b/src/main/java/org/olat/core/util/image/spi/ImageMagickHelper.java @@ -153,23 +153,28 @@ public class ImageMagickHelper extends BasicManager implements ImageHelperSPI { private final FinalSize executeProcess(File thumbnailFile, Process proc) { - InputStream stderr = proc.getErrorStream(); - InputStreamReader iserr = new InputStreamReader(stderr); - BufferedReader berr = new BufferedReader(iserr); - String l = null; + FinalSize rv = null; StringBuilder errors = new StringBuilder(); StringBuilder output = new StringBuilder(); + String line; + InputStream stderr = proc.getErrorStream(); + InputStreamReader iserr = new InputStreamReader(stderr); + BufferedReader berr = new BufferedReader(iserr); + line = null; try { - while ((l = berr.readLine()) != null) { - errors.append(l); + while ((line = berr.readLine()) != null) { + errors.append(line); } - - InputStream stdout = proc.getInputStream(); - InputStreamReader isr = new InputStreamReader(stdout); - BufferedReader br = new BufferedReader(isr); - String line = null; - + } catch (IOException e) { + // + } + + InputStream stdout = proc.getInputStream(); + InputStreamReader isr = new InputStreamReader(stdout); + BufferedReader br = new BufferedReader(isr); + line = null; + try { while ((line = br.readLine()) != null) { output.append(line); } @@ -185,13 +190,17 @@ public class ImageMagickHelper extends BasicManager implements ImageHelperSPI { try { int exitValue = proc.waitFor(); if (exitValue == 0) { - return extractSizeFromOutput(thumbnailFile, output); + rv = extractSizeFromOutput(thumbnailFile, output); + if (rv == null) { + // sometimes verbose info of convert is in stderr + rv = extractSizeFromOutput(thumbnailFile, errors); + } } } catch (InterruptedException e) { // } logWarn("Could not generate thumbnail: "+thumbnailFile, null); - return null; + return rv; } /** * Extract informations from the process:<br/> -- GitLab