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);
   }
 
   /**