diff options
author | Nathan Harmata <nharmata@google.com> | 2016-06-15 16:48:13 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2016-06-16 09:00:49 +0000 |
commit | 3a319d5a3144a52c5c8b50c711b03e5dc52a0706 (patch) | |
tree | 3ba52c697c9aa4ab54dbb69e8bb4ca53e620fe89 /src/main/java/com/google/devtools/build/lib/packages | |
parent | 2ba818ca7d2c77f517f1c0e6540c9af0501b7fb2 (diff) |
Don't include null values in AggregatingAttributeMapper#visitAttribute. Null values arise when a None is used as the value of a Selector for a type without a default value.
--
MOS_MIGRATED_REVID=124961388
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java index 9de8ce4914..f57b83b79e 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java +++ b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java @@ -373,7 +373,13 @@ public class AggregatingAttributeMapper extends AbstractAttributeMapper { // have no impact on the dependency structure. if (selectors.isEmpty()) { - valuesBuilder.add(Preconditions.checkNotNull(currentValueSoFar)); + if (currentValueSoFar != null) { + // Null values arise when a None is used as the value of a Selector for a type without a + // default value. + // TODO(gregce): visitAttribute should probably convey that an unset attribute is possible. + // Therefore we need to actually handle null values here. + valuesBuilder.add(currentValueSoFar); + } } else { Selector<T> firstSelector = selectors.get(0); List<Selector<T>> remainingSelectors = selectors.subList(1, selectors.size()); |