mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-23 03:48:13 +00:00
7023613: (lc) Incorrect string returned by Locale.toString() with non-empty script field
Reviewed-by: srl
This commit is contained in:
parent
2785e49558
commit
d7b9fcfbd4
@ -1168,7 +1168,7 @@ public final class Locale implements Cloneable, Serializable {
|
||||
boolean e = (_extensions.getID().length() != 0);
|
||||
|
||||
StringBuilder result = new StringBuilder(_baseLocale.getLanguage());
|
||||
if (r || (l && v)) {
|
||||
if (r || (l && (v || s || e))) {
|
||||
result.append('_')
|
||||
.append(_baseLocale.getRegion()); // This may just append '_'
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@ import java.util.Set;
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 6875847
|
||||
* @bug 6875847 6992272 7002320 7015500 7023613
|
||||
* @summary test API changes to Locale
|
||||
*/
|
||||
public class LocaleEnhanceTest extends LocaleTestFmwk {
|
||||
@ -83,7 +83,7 @@ public class LocaleEnhanceTest extends LocaleTestFmwk {
|
||||
"en-Latn-US-NewYork", "en_US_NewYork_#Latn",
|
||||
"en-Latn-US", "en_US_#Latn",
|
||||
"en-Latn-NewYork", "en__NewYork_#Latn", // double underscore
|
||||
"en-Latn", "en_#Latn",
|
||||
"en-Latn", "en__#Latn", // double underscore
|
||||
"en-US-NewYork", "en_US_NewYork",
|
||||
"en-US", "en_US",
|
||||
"en-NewYork", "en__NewYork", // double underscore
|
||||
@ -1259,6 +1259,22 @@ public class LocaleEnhanceTest extends LocaleTestFmwk {
|
||||
}
|
||||
}
|
||||
|
||||
public void testBug7023613() {
|
||||
String[][] testdata = {
|
||||
{"en-Latn", "en__#Latn"},
|
||||
{"en-u-ca-japanese", "en__#u-ca-japanese"},
|
||||
};
|
||||
|
||||
for (String[] data : testdata) {
|
||||
String in = data[0];
|
||||
String expected = (data.length == 1) ? data[0] : data[1];
|
||||
|
||||
Locale loc = Locale.forLanguageTag(in);
|
||||
String out = loc.toString();
|
||||
assertEquals("Empty country field with non-empty script/extension with input: " + in, expected, out);
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
/// utility asserts
|
||||
///
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user