aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar buchgr <buchgr@google.com>2017-05-29 12:59:31 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-05-29 14:09:13 +0200
commit7a7bce013781d1d57d7996f38726b51cea6d7995 (patch)
treedef3ef41177d53f579565fd26ff9f1536d185f84 /src
parent88c684c9335f36bd1d804a208fca59b7447d3a32 (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalEventHandler.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ExperimentalStateTracker.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/runtime/ExperimentalStateTrackerTest.java4
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);