From 57f37116214505dbfa00a8cbda836b6dfbc22bbb Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Wed, 15 Aug 2012 13:57:25 +0400 Subject: [PATCH] IDEA-90129 Run Tool window does not show all console output - myReader.ready() always returns false (cherry-picked from df83ad7) --- .../util/src/com/intellij/util/io/BaseOutputReader.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/platform/util/src/com/intellij/util/io/BaseOutputReader.java b/platform/util/src/com/intellij/util/io/BaseOutputReader.java index 3995151ba89d..b45d04e3101b 100644 --- a/platform/util/src/com/intellij/util/io/BaseOutputReader.java +++ b/platform/util/src/com/intellij/util/io/BaseOutputReader.java @@ -33,6 +33,7 @@ public abstract class BaseOutputReader { protected volatile boolean isStopped = false; private final char[] myBuffer = new char[8192]; + private final StringBuilder myTextBuffer = new StringBuilder(); private boolean skipLF = false; private Future myFinishedFuture = null; @@ -78,12 +79,12 @@ public abstract class BaseOutputReader { protected synchronized boolean readAvailable() throws IOException { char[] buffer = myBuffer; - StringBuilder token = new StringBuilder(); + StringBuilder token = myTextBuffer; + token.setLength(0); boolean read = false; - while (myReader.ready()) { - int n = myReader.read(buffer); - if (n <= 0) break; + int n; + while ((n = myReader.read(buffer)) > 0) { read = true; for (int i = 0; i < n; i++) {