aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-04-23 12:44:52 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-23 12:46:32 -0700
commit4abd2babcc50900afd0271bf30dc64055f34e100 (patch)
tree34788b7973326f519bce2ce5d709beee31e327b0 /src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java
parent060b1624e4d64dbdbeb375f9a55a3da9bd055a54 (diff)
Add error message on empty public resources
This should provide more understandable behavior in the case described in https://github.com/bazelbuild/bazel/issues/5077 RELNOTES: none PiperOrigin-RevId: 193968203
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java b/src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java
index ab1dee800d..571a59803b 100644
--- a/src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java
+++ b/src/tools/android/java/com/google/devtools/build/android/PlaceholderIdFieldInitializerBuilder.java
@@ -337,13 +337,17 @@ class PlaceholderIdFieldInitializerBuilder {
"Cannot force ATTR to have type code other than 0x%02x (got 0x%02x from %s)",
ATTR_TYPE_ID, reservedTypeSlot, previousResource));
}
- allocatedTypeIds.put(currentType, reservedTypeSlot);
- ResourceType alreadyAssigned = assignedIds.put(reservedTypeSlot, currentType);
- if (alreadyAssigned != null) {
- logger.warning(
- String.format(
- "Multiple type names declared for public type identifier 0x%x (%s vs %s)",
- reservedTypeSlot, alreadyAssigned, currentType));
+ if (reservedTypeSlot == null) {
+ logger.warning(String.format("Invalid public resource of type %s - ignoring", currentType));
+ } else {
+ allocatedTypeIds.put(currentType, reservedTypeSlot);
+ ResourceType alreadyAssigned = assignedIds.put(reservedTypeSlot, currentType);
+ if (alreadyAssigned != null) {
+ logger.warning(
+ String.format(
+ "Multiple type names declared for public type identifier 0x%x (%s vs %s)",
+ reservedTypeSlot, alreadyAssigned, currentType));
+ }
}
}
return allocatedTypeIds;