aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
authorGravatar Nathan Harmata <nharmata@google.com>2016-06-15 16:48:13 +0000
committerGravatar Yue Gan <yueg@google.com>2016-06-16 09:00:49 +0000
commit3a319d5a3144a52c5c8b50c711b03e5dc52a0706 (patch)
tree3ba52c697c9aa4ab54dbb69e8bb4ca53e620fe89 /src/main/java/com/google/devtools/build/lib/packages
parent2ba818ca7d2c77f517f1c0e6540c9af0501b7fb2 (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.java8
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());