diff options
author | 2015-10-28 19:59:00 +0000 | |
---|---|---|
committer | 2015-10-29 07:47:05 +0000 | |
commit | 0446c95d4e2f5e4a084744a10c87d631a92b3be0 (patch) | |
tree | cecf046a5a59ae29438579048fe7fda3b9e070eb /src/main/java/com/google/devtools/build | |
parent | 26f494a837c55e4c9b9c21d331a23e8e4eaaeded (diff) |
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
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/RuleClass.java | 8 |
1 files changed, 5 insertions, 3 deletions
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 b43af740e5..642920315a 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 @@ public final class RuleClass { } /** - * 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); } /** |