aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.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/FancyTerminalEventHandler.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/FancyTerminalEventHandler.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
index e482eb6054..90975de9a5 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
@@ -133,12 +133,14 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
return;
}
if (!eventMask.contains(event.getKind())) {
+ handleFollowUpEvents(event);
return;
}
if (trySpecial
&& !EventKind.ERRORS_AND_WARNINGS_AND_OUTPUT.contains(event.getKind())
&& skipUntil.isAfter(Instant.now())) {
// Short-circuit here to avoid wiping out previous terminal contents.
+ handleFollowUpEvents(event);
return;
}
@@ -235,8 +237,18 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
logger.warning("Terminal was closed during build: " + e);
terminalClosed = true;
}
+ handleFollowUpEvents(event);
}
-
+
+ private void handleFollowUpEvents(Event event) {
+ if (event.getStdErr() != null) {
+ handle(Event.of(EventKind.STDERR, null, event.getStdErr()));
+ }
+ if (event.getStdOut() != null) {
+ handle(Event.of(EventKind.STDOUT, null, event.getStdOut()));
+ }
+ }
+
private String getExtraMessage() {
synchronized (messageIterator) {
if (messageIterator.hasNext()) {