From f24ce76edb4f00b6e45cd9a56cacee0aace55db1 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Thu, 15 Sep 2016 14:31:05 +0200 Subject: [PATCH] StringUtils.parseLocaleString accepts Java 7 variants Issue: SPR-14718 --- .../src/main/java/org/springframework/util/StringUtils.java | 2 +- .../test/java/org/springframework/util/StringUtilsTests.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/spring-core/src/main/java/org/springframework/util/StringUtils.java b/spring-core/src/main/java/org/springframework/util/StringUtils.java index 2f14858af2..1d2734c889 100644 --- a/spring-core/src/main/java/org/springframework/util/StringUtils.java +++ b/spring-core/src/main/java/org/springframework/util/StringUtils.java @@ -715,7 +715,7 @@ public abstract class StringUtils { private static void validateLocalePart(String localePart) { for (int i = 0; i < localePart.length(); i++) { char ch = localePart.charAt(i); - if (ch != '_' && ch != ' ' && !Character.isLetterOrDigit(ch)) { + if (ch != ' ' && ch != '_' && ch != '#' && !Character.isLetterOrDigit(ch)) { throw new IllegalArgumentException( "Locale part \"" + localePart + "\" contains invalid characters"); } diff --git a/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java b/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java index e63ec35575..21cc737496 100644 --- a/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java @@ -692,4 +692,9 @@ public class StringUtilsTests { assertEquals("Variant containing country code not extracted correctly", variant, locale.getVariant()); } + @Test // SPR-14718 + public void testParseJava7Variant() { + assertEquals("sr_#LATN", StringUtils.parseLocaleString("sr_#LATN").toString()); + } + } -- GitLab