summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Light <allight@google.com>2018-02-27 17:21:08 +0000
committerandroid-build-merger <android-build-merger@google.com>2018-02-27 17:21:08 +0000
commitdc04857472fc5b29349b4e9d5e0fd788154fb4c5 (patch)
tree12a4e22b22bf9a092645eba623e4a8f7845f8d86
parent75ee85088a0d2b3002eb8155baab734c7dd758ad (diff)
parentc51b82b3f9842a7d6688836ccdd19885138e9789 (diff)
downloadapache-harmony-pie-qpr3-b-release.tar.gz
am: c51b82b3f9 Change-Id: I007ef9b1960f244ac2ea6433d5cd63363b6bd05c
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/StreamRedirector.java32
1 files changed, 21 insertions, 11 deletions
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/StreamRedirector.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/StreamRedirector.java
index 56fefee..ca2ebc0 100644
--- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/StreamRedirector.java
+++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/framework/StreamRedirector.java
@@ -26,9 +26,9 @@
package org.apache.harmony.jpda.tests.framework;
import java.io.InputStreamReader;
-import java.io.BufferedReader;
import java.io.InputStream;
import java.io.IOException;
+import java.io.Reader;
/**
* <p>This class provides redirection of debuggee output and error streams to logWriter.
@@ -37,7 +37,7 @@ public class StreamRedirector extends Thread {
String name;
LogWriter logWriter;
- BufferedReader br;
+ Reader br;
boolean doExit;
/**
@@ -51,8 +51,7 @@ public class StreamRedirector extends Thread {
super("Redirector for " + name);
this.name = name;
this.logWriter = logWriter;
- InputStreamReader isr = new InputStreamReader(is);
- br = new BufferedReader(isr, 1024);
+ br = new InputStreamReader(is);
doExit = false;
}
@@ -63,19 +62,30 @@ public class StreamRedirector extends Thread {
public void run() {
logWriter.println("Redirector started: " + name);
try {
- String line = "";
- while (!doExit) {
+ StringBuilder cur = new StringBuilder();
+ while (!doExit || br.ready()) {
try {
- line = br.readLine();
- if (line == null)
+ int nc = br.read();
+ if (nc == -1) {
+ if (cur.length() != 0) {
+ logWriter.println(name + "> " + cur.toString());
+ cur.setLength(0);
+ }
break;
-
- logWriter.println(name + "> " + line);
+ } else if (nc == (int)'\n') {
+ logWriter.println(name + "> " + cur.toString());
+ cur.setLength(0);
+ } else {
+ cur.appendCodePoint(nc);
+ }
} catch (IllegalStateException e) {
//logWriter.printError("Illegal state exception! " + e);
//ignore
}
-
+ }
+ if (cur.length() != 0) {
+ logWriter.println(name + "> " + cur.toString());
+ cur.setLength(0);
}
logWriter.println("Redirector completed: " + name);
} catch (IOException e) {