aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildtool
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2018-06-04 08:05:13 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-04 08:11:10 -0700
commit8e9b28ffba3f9d5fb87192a7a660ef81d8d42d11 (patch)
tree3a6bf68419f4113704e18e23588ee4337b17bda1 /src/main/java/com/google/devtools/build/lib/buildtool
parent072154757970826b39715a67aaec15763d8be4a1 (diff)
Failing targets are identified by comparing ConfiguredTarget.Key instead of ConfiguredTarget. Since ConfiguredTarget does not implement equals(), reference equality has been used until now, and this is not valid for the case where the ConfiguredTarget has been deserialized.
PiperOrigin-RevId: 199133926
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildtool')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java3
3 files changed, 10 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java
index 1becb5bc93..644f34e448 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionProgressReceiver.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.skyframe.ActionExecutionInactivityWatchdog;
import com.google.devtools.build.lib.skyframe.AspectCompletionValue;
import com.google.devtools.build.lib.skyframe.AspectCompletionValue.AspectCompletionKey;
import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey;
+import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.skyframe.SkyframeActionExecutor;
import com.google.devtools.build.lib.skyframe.TargetCompletionValue;
@@ -49,7 +50,7 @@ public final class ExecutionProgressReceiver
private static final NumberFormat PROGRESS_MESSAGE_NUMBER_FORMATTER;
// Must be thread-safe!
- private final Set<ConfiguredTarget> builtTargets;
+ private final Set<ConfiguredTargetKey> builtTargets;
private final Set<AspectKey> builtAspects;
private final Set<ActionLookupData> enqueuedActions = Sets.newConcurrentHashSet();
private final Set<ActionLookupData> completedActions = Sets.newConcurrentHashSet();
@@ -69,7 +70,7 @@ public final class ExecutionProgressReceiver
* permitted while this receiver is active.
*/
ExecutionProgressReceiver(
- Set<ConfiguredTarget> builtTargets, Set<AspectKey> builtAspects, int exclusiveTestsCount) {
+ Set<ConfiguredTargetKey> builtTargets, Set<AspectKey> builtAspects, int exclusiveTestsCount) {
this.builtTargets = Collections.synchronizedSet(builtTargets);
this.builtAspects = Collections.synchronizedSet(builtAspects);
this.exclusiveTestsCount = exclusiveTestsCount;
@@ -108,7 +109,7 @@ public final class ExecutionProgressReceiver
return;
}
ConfiguredTarget target = value.getConfiguredTarget();
- builtTargets.add(target);
+ builtTargets.add(ConfiguredTargetKey.inTargetConfig(target));
} else if (type.equals(SkyFunctions.ASPECT_COMPLETION)) {
AspectCompletionValue value = (AspectCompletionValue) skyValueSupplier.get();
if (value == null) {
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
index 8139fbf8c7..80a54f2673 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
@@ -74,6 +74,7 @@ import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.skyframe.AspectValue;
import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey;
import com.google.devtools.build.lib.skyframe.Builder;
+import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.OutputService;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.util.AbruptExitException;
@@ -289,7 +290,7 @@ public class ExecutionTool {
installExplanationHandler(request.getBuildOptions().explanationPath,
request.getOptionsDescription());
- Set<ConfiguredTarget> builtTargets = new HashSet<>();
+ Set<ConfiguredTargetKey> builtTargets = new HashSet<>();
Set<AspectKey> builtAspects = new HashSet<>();
Collection<AspectValue> aspects = analysisResult.getAspects();
@@ -536,12 +537,12 @@ public class ExecutionTool {
* @param configuredTargets The configured targets whose artifacts are to be built.
*/
private Collection<ConfiguredTarget> determineSuccessfulTargets(
- Collection<ConfiguredTarget> configuredTargets, Set<ConfiguredTarget> builtTargets) {
+ Collection<ConfiguredTarget> configuredTargets, Set<ConfiguredTargetKey> builtTargets) {
// Maintain the ordering by copying builtTargets into a LinkedHashSet in the same iteration
// order as configuredTargets.
Collection<ConfiguredTarget> successfulTargets = new LinkedHashSet<>();
for (ConfiguredTarget target : configuredTargets) {
- if (builtTargets.contains(target)) {
+ if (builtTargets.contains(ConfiguredTargetKey.inTargetConfig(target))) {
successfulTargets.add(target);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java b/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java
index f557e62ffe..e4951bd8e9 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java
@@ -41,6 +41,7 @@ import com.google.devtools.build.lib.skyframe.ActionExecutionInactivityWatchdog;
import com.google.devtools.build.lib.skyframe.AspectValue;
import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey;
import com.google.devtools.build.lib.skyframe.Builder;
+import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.util.ExitCode;
@@ -103,7 +104,7 @@ public class SkyframeBuilder implements Builder {
Set<ConfiguredTarget> targetsToSkip,
Collection<AspectValue> aspects,
Executor executor,
- Set<ConfiguredTarget> builtTargets,
+ Set<ConfiguredTargetKey> builtTargets,
Set<AspectKey> builtAspects,
boolean explain,
@Nullable Range<Long> lastExecutionTimeRange,