This commit is contained in:
Jonathan Gibbons 2011-08-17 12:10:53 -07:00
commit fe76ef7825
4 changed files with 34 additions and 2 deletions

View File

@ -1589,7 +1589,7 @@ public final class Locale implements Cloneable, Serializable {
* @since 1.7
*/
public String getDisplayScript() {
return getDisplayScript(getDefault());
return getDisplayScript(getDefault(Category.DISPLAY));
}
/**

View File

@ -563,6 +563,18 @@ GetJavaProperties(JNIEnv* env)
{
char * display_encoding;
// Windows UI Language selection list only cares "language"
// information of the UI Language. For example, the list
// just lists "English" but it actually means "en_US", and
// the user cannot select "en_GB" (if exists) in the list.
// So, this hack is to use the user LCID region information
// for the UI Language, if the "language" portion of those
// two locales are the same.
if (PRIMARYLANGID(LANGIDFROMLCID(userDefaultLCID)) ==
PRIMARYLANGID(LANGIDFROMLCID(userDefaultUILang))) {
userDefaultUILang = userDefaultLCID;
}
SetupI18nProps(userDefaultUILang,
&sprops.language,
&sprops.script,

View File

@ -56,6 +56,7 @@ public class LocaleCategory {
Locale.getDefault().getVariant())).build();
checkDefault();
testGetSetDefault();
testBug7079486();
} finally {
// restore the reserved locale
Locale.setDefault(reservedLocale);
@ -82,5 +83,24 @@ public class LocaleCategory {
throw new RuntimeException("setDefault() should set all default locales for all categories");
}
}
static void testBug7079486() {
Locale zh_Hans_CN = Locale.forLanguageTag("zh-Hans-CN");
// make sure JRE has zh_Hans_CN localized string
if (zh_Hans_CN.getDisplayScript(Locale.US).equals(zh_Hans_CN.getDisplayScript(zh_Hans_CN))) {
return;
}
Locale.setDefault(Locale.US);
String en_script = zh_Hans_CN.getDisplayScript();
Locale.setDefault(Locale.Category.DISPLAY, zh_Hans_CN);
String zh_script = zh_Hans_CN.getDisplayScript();
if (en_script.equals(zh_script)) {
throw new RuntimeException("Locale.getDisplayScript() (no args) does not honor default DISPLAY locale");
}
}
}

View File

@ -1,7 +1,7 @@
#!/bin/sh
#
# @test
# @bug 4700857 6997928
# @bug 4700857 6997928 7079486
# @summary tests for Locale.getDefault(Locale.Category) and
# Locale.setDefault(Locale.Category, Locale)
# @build LocaleCategory