aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2018-08-10 09:53:12 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-10 09:54:45 -0700
commit44e267980fffd6b0aaee49831fc83441e2000082 (patch)
treec5d33e22dbebd38bee3c6f0c586eabdf35d372a1 /src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
parent3df620a1ef16e81780d7af40cd2dfa3251d40668 (diff)
Combine prefix event and payload stdout/stderr
...in a single event instead of relying on the synchronisation on the reporter. In this way, it will be possible to focus on output of errors, and also to deduplicate warnings. Change-Id: I9669e8497ca6e22a01f3e285ec9ee42c1ecf3fb5 PiperOrigin-RevId: 208223882
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
index f68b3853d2..49ba57ba1b 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java
@@ -319,6 +319,20 @@ public class ExperimentalEventHandler implements EventHandler {
clearProgressBar();
terminal.flush();
outErr.getOutputStream().write((event + "\n").getBytes(StandardCharsets.UTF_8));
+ if (event.getStdOut() != null) {
+ outErr
+ .getOutputStream()
+ .write(
+ ("... with STDOUT: " + event.getStdOut() + "\n")
+ .getBytes(StandardCharsets.UTF_8));
+ }
+ if (event.getStdErr() != null) {
+ outErr
+ .getOutputStream()
+ .write(
+ ("... with STDERR: " + event.getStdErr() + "\n")
+ .getBytes(StandardCharsets.UTF_8));
+ }
outErr.getOutputStream().flush();
addProgressBar();
terminal.flush();
@@ -336,10 +350,10 @@ public class ExperimentalEventHandler implements EventHandler {
stream.flush();
} else {
byte[] message = event.getMessageBytes();
- double cap = remainingCapacity(message.length);
- if (cap < 0) {
+ if (remainingCapacity() < 0) {
return;
}
+ double cap = remainingCapacity(message.length);
if (cap < CAPACITY_LIMIT_OUT_ERR_EVENTS) {
// Have to ensure the message is not too large.
long allowedLength =
@@ -439,6 +453,12 @@ public class ExperimentalEventHandler implements EventHandler {
case DEPCHECKER:
break;
}
+ if (event.getStdErr() != null) {
+ handle(Event.of(EventKind.STDERR, null, event.getStdErr()));
+ }
+ if (event.getStdOut() != null) {
+ handle(Event.of(EventKind.STDOUT, null, event.getStdOut()));
+ }
}
} catch (IOException e) {
logger.warning("IO Error writing to output stream: " + e);