diff options
author | Jingwen Chen <jingwen@google.com> | 2018-05-11 08:56:06 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-11 08:57:16 -0700 |
commit | 91b867f6b1b5c417172efe1fa278282d14500922 (patch) | |
tree | 01bdfc404a15169ace91521e9866bbdce422b737 /src/tools/android/java | |
parent | a8ddd36c3a68d9c58357399f349fd70a14d79d92 (diff) |
Set Locale to English when uppercasing strings to match Enums
Fixes https://github.com/bazelbuild/bazel/issues/5157
If a user's default system locale is not `en`, `en_US` or `en_UK`, there may be a chance that `String#toUpperCase` will result in a string that does not exist in the Enum declaration. This is the case in #5157.
To fix this, it's either
1) setting the Locale in the individual `toUpperCase` calls or
2) set Locale to English by default from `Bazel.java`.
I chose the first because it seemed less intrusive, but I'm open to suggestions.
Closes #5184.
PiperOrigin-RevId: 196261078
Diffstat (limited to 'src/tools/android/java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java index dd28f109e8..e2d5caf784 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java @@ -33,6 +33,7 @@ import com.google.devtools.build.android.proto.SerializeFormat.DataValueXml; import java.io.IOException; import java.io.OutputStream; import java.util.Arrays; +import java.util.Locale; import java.util.Objects; import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; @@ -283,7 +284,7 @@ public class SimpleXmlResourceValue implements XmlResourceValue { } return of( - Type.valueOf(resourceType.toString().toUpperCase()), + Type.valueOf(resourceType.toString().toUpperCase(Locale.ENGLISH)), ImmutableMap.of(), stringValue); } |