Add preconditions check for attr existence in RuleClass#getAttributeByName
Makes the the inevitable null pointer from unboxing null easier to diagnose.
--
MOS_MIGRATED_REVID=106525458
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index b43af74..6429203 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -14,8 +14,8 @@
package com.google.devtools.build.lib.packages;
-import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
+import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
@@ -1150,10 +1150,12 @@
}
/**
- * Returns the attribute whose name is 'attrName'; fails if not found.
+ * Returns the attribute whose name is 'attrName'; fails with NullPointerException if not found.
*/
public Attribute getAttributeByName(String attrName) {
- return attributes.get(getAttributeIndex(attrName));
+ Integer attrIndex = Preconditions.checkNotNull(getAttributeIndex(attrName),
+ "Attribute %s does not exist", attrName);
+ return attributes.get(attrIndex);
}
/**