diff options
author | 2017-08-30 19:34:29 +0200 | |
---|---|---|
committer | 2017-08-31 13:44:08 +0200 | |
commit | f3ad3034aee6bedecd7455fbf762d4acf2dace19 (patch) | |
tree | 6016ecff626e393001f287671b404c6d38d37d68 /src/main/java/com/google/devtools/build/lib/skyframe | |
parent | dffa6365b5cfa3991f52b6a72eaff7e5ab922888 (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.java | 1 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java | 10 |
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; } |