diff options
author | 2016-11-11 11:18:48 +0000 | |
---|---|---|
committer | 2016-11-11 12:53:45 +0000 | |
commit | 9b2fc5cd6d4b85df9e8db1a3963898a1bf3518c8 (patch) | |
tree | 3249be228978e9eb85e75cae486994f8cb3e35fe /src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java | |
parent | 034ad044740c950bfa7518055cfb666817c9bb09 (diff) |
Do not crash when aspects provide duplicate things.
--
MOS_MIGRATED_REVID=138860974
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java index ba84c5b7fb..0b7c91160a 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java @@ -46,6 +46,7 @@ import com.google.devtools.build.lib.packages.SkylarkAspectClass; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.rules.AliasProvider; import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredTargetFunctionException; import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredValueCreationException; import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.DependencyEvaluationException; import com.google.devtools.build.lib.skyframe.SkyframeExecutor.BuildViewProvider; @@ -231,17 +232,21 @@ public final class AspectFunction implements SkyFunction { return null; } - OrderedSetMultimap<Attribute, ConfiguredTarget> depValueMap = - ConfiguredTargetFunction.computeDependencies( - env, - resolver, - originalTargetAndAspectConfiguration, - aspect, - configConditions, - ruleClassProvider, - view.getHostConfiguration(originalTargetAndAspectConfiguration.getConfiguration()), - transitivePackages, - transitiveRootCauses); + OrderedSetMultimap<Attribute, ConfiguredTarget> depValueMap; + try { + depValueMap = ConfiguredTargetFunction.computeDependencies( + env, + resolver, + originalTargetAndAspectConfiguration, + aspect, + configConditions, + ruleClassProvider, + view.getHostConfiguration(originalTargetAndAspectConfiguration.getConfiguration()), + transitivePackages, + transitiveRootCauses); + } catch (ConfiguredTargetFunctionException e) { + throw new AspectCreationException(e.getMessage()); + } if (depValueMap == null) { return null; } |