diff options
author | Eric Fellheimer <felly@google.com> | 2015-09-01 17:31:18 +0000 |
---|---|---|
committer | John Field <jfield@google.com> | 2015-09-02 00:58:26 +0000 |
commit | c7036917be1e544f24189ab30a293509ebbdeb1b (patch) | |
tree | 4a0d4d8c9a623e9f1d4b412d5557f8f8ab1b7e68 /src/main/java/com | |
parent | 1a372a5a0174806bdb2e0a9ba1dfda9766b32ccb (diff) |
Fix crash on deserializing INTEGER_LIST attributes in packages.
Currently, this can only happen if a Skylark rules declare use of such an INTEGER_LIST.
--
MOS_MIGRATED_REVID=102054727
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java index 95a928fb57..ad335aaa25 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java +++ b/src/main/java/com/google/devtools/build/lib/packages/PackageDeserializer.java @@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.packages; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.base.Throwables; import com.google.common.cache.CacheBuilder; @@ -532,7 +533,8 @@ public class PackageDeserializer { } // TODO(bazel-team): Verify that these put sane values in the attribute - private static Object deserializeAttributeValue(Type<?> expectedType, + @VisibleForTesting + static Object deserializeAttributeValue(Type<?> expectedType, Build.Attribute attrPb) throws PackageDeserializationException { switch (attrPb.getType()) { @@ -638,6 +640,9 @@ public class PackageDeserializer { case TRISTATE: return attrPb.hasStringValue() ? deserializeTriStateValue(attrPb.getStringValue()) : null; + case INTEGER_LIST: + return ImmutableList.copyOf(attrPb.getIntListValueList()); + default: throw new PackageDeserializationException("Invalid discriminator: " + attrPb.getType()); } |