diff options
author | Klaus Aehlig <aehlig@google.com> | 2018-08-10 09:53:12 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-08-10 09:54:45 -0700 |
commit | 44e267980fffd6b0aaee49831fc83441e2000082 (patch) | |
tree | c5d33e22dbebd38bee3c6f0c586eabdf35d372a1 /src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java | |
parent | 3df620a1ef16e81780d7af40cd2dfa3251d40668 (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.java | 24 |
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); |