From ddc8f7c034b2c5934029f2aaed094d1a43ac570c Mon Sep 17 00:00:00 2001 From: Andre Rocha Date: Fri, 5 Mar 2021 11:56:57 +0000 Subject: [PATCH] Fix depset expansion when common nodes are traversed --- .../resolvers/actiongraph/ActionGraphV1Parser.java | 8 ++++---- .../resolvers/actiongraph/ActionGraphV2Parser.java | 11 ++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV1Parser.java b/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV1Parser.java index 15536ea9f..59561b2c2 100644 --- a/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV1Parser.java +++ b/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV1Parser.java @@ -53,9 +53,9 @@ private List getActions(String targetLabel) { private List expandDepsetToArtifacts(String idToExpand) { Queue idsToExpand = new ArrayDeque<>(Lists.newArrayList(idToExpand)); - HashSet expandedIds = new HashSet<>(); + Set expandedIds = new HashSet<>(); - HashSet artifactIds = new HashSet<>(); + Set artifactIds = new HashSet<>(); while (!idsToExpand.isEmpty()) { String depsetId = idsToExpand.remove(); if (expandedIds.contains(depsetId)) { @@ -64,9 +64,9 @@ private List expandDepsetToArtifacts(String idToExpand) expandedIds.add(depsetId); actionGraph.getDepSetOfFilesList().stream() - .filter((depset) -> depsetId.equals(depset.getId())) + .filter(depset -> depsetId.equals(depset.getId())) .forEach( - (depset) -> { + depset -> { idsToExpand.addAll(depset.getTransitiveDepSetIdsList()); artifactIds.addAll(depset.getDirectArtifactIdsList()); }); diff --git a/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV2Parser.java b/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV2Parser.java index 2d6c94cab..11b1ae9d0 100644 --- a/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV2Parser.java +++ b/src/main/java/org/jetbrains/bsp/bazel/server/bsp/resolvers/actiongraph/ActionGraphV2Parser.java @@ -1,5 +1,6 @@ package org.jetbrains.bsp.bazel.server.bsp.resolvers.actiongraph; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.devtools.build.lib.analysis.AnalysisProtosV2; import java.util.*; @@ -71,20 +72,20 @@ private List getActions(String targetLabel) { private List expandDepsetToArtifacts(Integer idToExpand) { Queue idsToExpand = new ArrayDeque<>(Lists.newArrayList(idToExpand)); - HashSet expandedIds = new HashSet<>(); + Set expandedIds = new HashSet<>(); - HashSet artifactIds = new HashSet<>(); + Set artifactIds = new HashSet<>(); while (!idsToExpand.isEmpty()) { Integer depsetId = idsToExpand.remove(); if (expandedIds.contains(depsetId)) { - return Collections.emptyList(); + continue; } expandedIds.add(depsetId); actionGraph.getDepSetOfFilesList().stream() - .filter((depset) -> depsetId.equals(depset.getId())) + .filter(depset -> depsetId.equals(depset.getId())) .forEach( - (depset) -> { + depset -> { idsToExpand.addAll(depset.getTransitiveDepSetIdsList()); artifactIds.addAll(depset.getDirectArtifactIdsList()); });