diff options
author | buchgr <buchgr@google.com> | 2017-05-29 12:59:31 +0200 |
---|---|---|
committer | László Csomor <laszlocsomor@google.com> | 2017-05-29 14:09:13 +0200 |
commit | 7a7bce013781d1d57d7996f38726b51cea6d7995 (patch) | |
tree | def3ef41177d53f579565fd26ff9f1536d185f84 /src | |
parent | 88c684c9335f36bd1d804a208fca59b7447d3a32 (diff) |
Experimental UI: Support multiple BuildEventTransportAnnouncedEvents
We initially didn't consider that multiple BuildEventStreamer instances might
exist during a build.
RELNOTES: None.
PiperOrigin-RevId: 157385069
Diffstat (limited to 'src')
3 files changed, 6 insertions, 5 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 147def33d2..62850557f5 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 @@ -555,7 +555,7 @@ public class ExperimentalEventHandler implements EventHandler { @Subscribe public synchronized void buildEventTransportsAnnounced(AnnounceBuildEventTransportsEvent event) { - openBepTransports = event.transports().size(); + openBepTransports += event.transports().size(); stateTracker.buildEventTransportsAnnounced(event); } diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java index b11b5cad01..51e67b77b3 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java @@ -41,7 +41,6 @@ import com.google.devtools.build.lib.util.io.PositionAwareAnsiTerminalWriter; import com.google.devtools.build.lib.view.test.TestStatus.BlazeTestStatus; import java.io.IOException; import java.util.ArrayDeque; -import java.util.Collections; import java.util.Deque; import java.util.HashSet; import java.util.LinkedHashSet; @@ -106,7 +105,7 @@ class ExperimentalStateTracker { private PackageProgressReceiver packageProgressReceiver; // Set of build event protocol transports that need yet to be closed. - private Set<BuildEventTransport> bepOpenTransports = Collections.emptySet(); + private Set<BuildEventTransport> bepOpenTransports = new HashSet<>(); // The point in time when closing of BEP transports was started. private long bepTransportClosingStartTimeMillis; @@ -496,7 +495,7 @@ class ExperimentalStateTracker { } synchronized void buildEventTransportsAnnounced(AnnounceBuildEventTransportsEvent event) { - this.bepOpenTransports = new HashSet<BuildEventTransport>(event.transports()); + this.bepOpenTransports.addAll(event.transports()); } synchronized void buildEventTransportClosed(BuildEventTransportClosedEvent event) { diff --git a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java index 54709b0eff..f17abd8f61 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java @@ -697,7 +697,9 @@ public class ExperimentalStateTrackerTest extends FoundationTestCase { stateTracker.buildStarted(null); stateTracker.buildEventTransportsAnnounced( new AnnounceBuildEventTransportsEvent( - ImmutableList.of(transport1, transport2, transport3))); + ImmutableList.of(transport1, transport2))); + stateTracker.buildEventTransportsAnnounced( + new AnnounceBuildEventTransportsEvent(ImmutableList.of(transport3))); stateTracker.buildComplete(new BuildCompleteEvent(buildResult)); LoggingTerminalWriter terminalWriter = new LoggingTerminalWriter(true); |