diff options
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()); |