diff --git a/scm-core/src/main/java/sonia/scm/util/IOUtil.java b/scm-core/src/main/java/sonia/scm/util/IOUtil.java index f6557abc89..4fa63f3d90 100644 --- a/scm-core/src/main/java/sonia/scm/util/IOUtil.java +++ b/scm-core/src/main/java/sonia/scm/util/IOUtil.java @@ -45,14 +45,13 @@ import sonia.scm.io.ZipUnArchiver; //~--- JDK imports ------------------------------------------------------------ -import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Reader; import java.io.Writer; @@ -631,30 +630,19 @@ public class IOUtil */ public static String getContent(InputStream in) throws IOException { - StringBuilder content = new StringBuilder(); - BufferedReader reader = null; + String content = null; + ByteArrayOutputStream baos = null; try { - reader = new BufferedReader(new InputStreamReader(in)); - - String s = System.getProperty("line.separator"); - String line = reader.readLine(); - - while (line != null) - { - content.append(line); - line = reader.readLine(); - - if (line != null) - { - content.append(s); - } - } + baos = new ByteArrayOutputStream(); + copy(in, baos); + content = baos.toString(); } finally { - close(reader); + close(baos); + close(in); } return content.toString(); diff --git a/scm-webapp/src/main/java/sonia/scm/web/cgi/DefaultCGIExecutor.java b/scm-webapp/src/main/java/sonia/scm/web/cgi/DefaultCGIExecutor.java index f545ccc8ba..242a0fba0e 100644 --- a/scm-webapp/src/main/java/sonia/scm/web/cgi/DefaultCGIExecutor.java +++ b/scm-webapp/src/main/java/sonia/scm/web/cgi/DefaultCGIExecutor.java @@ -47,6 +47,7 @@ import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -447,11 +448,13 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor { if (logger.isWarnEnabled()) { - String error = IOUtil.getContent(in); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); - if (Util.isNotEmpty(error)) + IOUtil.copy(in, baos); + + if (baos.size() > 0) { - logger.warn(error.trim()); + logger.warn(baos.toString()); } } }