Repository: commons-lang Updated Branches: refs/heads/master a6443e146 -> 4bd982d1a
LANG-1312: LocaleUtils#toLocale does not support language followed by UN M.49 numeric-3 area code (closes #239) Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/4bd982d1 Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/4bd982d1 Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/4bd982d1 Branch: refs/heads/master Commit: 4bd982d1a1df87724682c17c39bf27b5cbe389be Parents: a6443e1 Author: pascalschumacher <pascalschumac...@gmx.net> Authored: Sun Feb 19 20:39:05 2017 +0100 Committer: pascalschumacher <pascalschumac...@gmx.net> Committed: Tue Feb 21 21:13:45 2017 +0100 ---------------------------------------------------------------------- src/changes/changes.xml | 1 + src/main/java/org/apache/commons/lang3/LocaleUtils.java | 4 +++- src/test/java/org/apache/commons/lang3/LocaleUtilsTest.java | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-lang/blob/4bd982d1/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index b023f95..13e83b4 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -76,6 +76,7 @@ The <action> type attribute can be add,update,fix,remove. <action issue="LANG-1297" type="update" dev="ggregory">Add SystemUtils.getHostName() API.</action> <action issue="LANG-1301" type="update" dev="pschumacher" due-to="Karl Heinz Marbaise">Moving apache-rat-plugin configuration into pluginManagement</action> <action issue="LANG-1311" type="fix" dev="pschumacher" due-to="Aaron Digulla">TypeUtils.toString() doesn't handle primitive and Object arrays correctly</action> + <action issue="LANG-1312" type="fix" dev="pschumacher">LocaleUtils#toLocale does not support language followed by UN M.49 numeric-3 area code</action> </release> <release version="3.5" date="2016-10-13" description="New features including Java 9 detection"> http://git-wip-us.apache.org/repos/asf/commons-lang/blob/4bd982d1/src/main/java/org/apache/commons/lang3/LocaleUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/lang3/LocaleUtils.java b/src/main/java/org/apache/commons/lang3/LocaleUtils.java index a3126eb..f13b52f 100644 --- a/src/main/java/org/apache/commons/lang3/LocaleUtils.java +++ b/src/main/java/org/apache/commons/lang3/LocaleUtils.java @@ -67,6 +67,7 @@ public class LocaleUtils { * LocaleUtils.toLocale("") = new Locale("", "") * LocaleUtils.toLocale("en") = new Locale("en", "") * LocaleUtils.toLocale("en_GB") = new Locale("en", "GB") + * LocaleUtils.toLocale("en_001") = new Locale("en", "001") * LocaleUtils.toLocale("en_GB_xxx") = new Locale("en", "GB", "xxx") (#) * </pre> * @@ -134,7 +135,8 @@ public class LocaleUtils { case 1: if (StringUtils.isAllLowerCase(split[0]) && (split[0].length() == 2 || split[0].length() == 3) && - split[1].length() == 2 && StringUtils.isAllUpperCase(split[1])) { + (split[1].length() == 2 && StringUtils.isAllUpperCase(split[1])) || + (split[1].length() == 3 && StringUtils.isNumeric(split[1]))) { return new Locale(split[0], split[1]); } throw new IllegalArgumentException("Invalid locale format: " + str); http://git-wip-us.apache.org/repos/asf/commons-lang/blob/4bd982d1/src/test/java/org/apache/commons/lang3/LocaleUtilsTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/lang3/LocaleUtilsTest.java b/src/test/java/org/apache/commons/lang3/LocaleUtilsTest.java index 4a867ba..79198af 100644 --- a/src/test/java/org/apache/commons/lang3/LocaleUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/LocaleUtilsTest.java @@ -505,6 +505,13 @@ public class LocaleUtilsTest { assertValidToLocale("fr__POSIX", "fr", "", "POSIX"); } + @Test + public void testLanguageAndUNM49Numeric3AreaCodeLang1312() { + assertValidToLocale("en_001", "en", "001"); + assertValidToLocale("en_150", "en", "150"); + assertValidToLocale("ar_001", "ar", "001"); + } + /** * Tests #LANG-865, strings starting with an underscore. */