aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-24 17:22:23 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-24 17:24:04 -0700
commit00408d666b8a61c80e41dcb7615ec9b625497e61 (patch)
treeb63d0622d907c683525137b1b2a98dcb1cdf93f2 /src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
parent738a2edcf811f9cc90e492f192f0d5cafcf93951 (diff)
@AutoCodec ConfiguredValueCreationException. Not a high priority, but while we're getting spurious analysis errors, helps to reduce noise.
PiperOrigin-RevId: 190355369
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java49
1 files changed, 27 insertions, 22 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index a4bb22fce0..d283a88dda 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -60,6 +60,7 @@ import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.skyframe.AspectFunction.AspectCreationException;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor.BuildViewProvider;
import com.google.devtools.build.lib.skyframe.ToolchainUtil.ToolchainContextException;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.util.OrderedSetMultimap;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -782,46 +783,50 @@ public final class ConfiguredTargetFunction implements SkyFunction {
}
/**
- * An exception indicating that there was a problem during the construction of
- * a ConfiguredTargetValue.
+ * An exception indicating that there was a problem during the construction of a
+ * ConfiguredTargetValue.
*/
+ @AutoCodec
public static final class ConfiguredValueCreationException extends Exception {
private final NestedSet<Label> loadingRootCauses;
// TODO(ulfjack): Collect all analysis root causes, not just the first one.
@Nullable private final Label analysisRootCause;
@Nullable private final BuildEventId configuration;
- public ConfiguredValueCreationException(
+ private ConfiguredValueCreationException(
String message, Label currentTarget, BuildConfiguration configuration) {
+ this(
+ message,
+ Preconditions.checkNotNull(currentTarget),
+ NestedSetBuilder.<Label>emptySet(Order.STABLE_ORDER),
+ configuration == null ? null : configuration.getEventId());
+ }
+
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec.Instantiator
+ ConfiguredValueCreationException(
+ String message,
+ Label analysisRootCause,
+ NestedSet<Label> loadingRootCauses,
+ BuildEventId configuration) {
super(message);
- this.loadingRootCauses = NestedSetBuilder.<Label>emptySet(Order.STABLE_ORDER);
- this.analysisRootCause = Preconditions.checkNotNull(currentTarget);
- if (configuration != null) {
- this.configuration = configuration.getEventId();
- } else {
- this.configuration = null;
- }
+ this.loadingRootCauses = loadingRootCauses;
+ this.analysisRootCause = analysisRootCause;
+ this.configuration = configuration;
}
- public ConfiguredValueCreationException(String message, Label currentTarget) {
- this(message, currentTarget, null);
+ private ConfiguredValueCreationException(String message, Label currentTarget) {
+ this(message, currentTarget, /*configuration=*/ null);
}
- public ConfiguredValueCreationException(String message, NestedSet<Label> rootCauses) {
- super(message);
- this.loadingRootCauses = rootCauses;
- this.analysisRootCause = null;
- this.configuration = null;
+ private ConfiguredValueCreationException(String message, NestedSet<Label> rootCauses) {
+ this(message, /*analysisRootCause=*/ null, rootCauses, /*configuration=*/ null);
}
- public ConfiguredValueCreationException(NestedSet<Label> rootCauses) {
+ private ConfiguredValueCreationException(NestedSet<Label> rootCauses) {
this("Loading failed", rootCauses);
}
- public ConfiguredValueCreationException(String message) {
- this(message, NestedSetBuilder.<Label>emptySet(Order.STABLE_ORDER));
- }
-
public NestedSet<Label> getRootCauses() {
return loadingRootCauses;
}