aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
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());