diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime')
3 files changed, 42 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java index bceb04c833..5fe8b5130a 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandEventHandler.java @@ -329,6 +329,13 @@ public class BlazeCommandEventHandler implements EventHandler { // Event messages go to stderr; results (e.g. 'blaze query') go to stdout. errPrintStream.println(buf); + + 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 void putOutput(OutputStream out, Event event) { 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); 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()) { |