aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2017-08-30 19:34:29 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-08-31 13:44:08 +0200
commitf3ad3034aee6bedecd7455fbf762d4acf2dace19 (patch)
tree6016ecff626e393001f287671b404c6d38d37d68 /src/main/java/com/google/devtools/build/lib/skyframe
parentdffa6365b5cfa3991f52b6a72eaff7e5ab922888 (diff)
Error reporting for invalid dynamic configurations
also, AppleConfiguration no longer throws NPE with invalid cpu. RELNOTES: None. PiperOrigin-RevId: 167013760
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java10
2 files changed, 8 insertions, 3 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 214aa02380..7e396ec338 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
@@ -305,6 +305,7 @@ public final class ConfiguredTargetFunction implements SkyFunction {
new ConfiguredValueCreationException(cause.getMessage(), target.getLabel()));
} else if (e.getCause() instanceof InvalidConfigurationException) {
InvalidConfigurationException cause = (InvalidConfigurationException) e.getCause();
+ env.getListener().handle(Event.error(cause.getMessage()));
throw new ConfiguredTargetFunctionException(
new ConfiguredValueCreationException(cause.getMessage(), target.getLabel()));
} else {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index f61ba9c54a..bfd7cb7fcf 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -1487,12 +1487,16 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory {
for (BuildOptions toOptions : ConfiguredTargetFunction.getDynamicTransitionOptions(
fromOptions, key.getTransition(), depFragments, ruleClassProvider, true)) {
SkyKey configKey = BuildConfigurationValue.key(depFragments, toOptions);
- builder.put(key,
- ((BuildConfigurationValue) configsResult.get(configKey)).getConfiguration());
+ BuildConfigurationValue configValue =
+ ((BuildConfigurationValue) configsResult.get(configKey));
+ // configValue will be null here if there was an exception thrown during configuration
+ // creation. This will be reported elsewhere.
+ if (configValue != null) {
+ builder.put(key, configValue.getConfiguration());
+ }
}
}
}
-
return builder;
}