src/share/classes/sun/util/locale/provider/JRELocaleProviderAdapter.java

Print this page
rev 7998 : [mq]: 8024332

*** 359,369 **** Set<String> tagset = new HashSet<>(); StringTokenizer tokens = new StringTokenizer(supportedLocaleString); while (tokens.hasMoreTokens()) { String token = tokens.nextToken(); if (token.equals("|")) { ! if (isNonUSLangSupported()) { continue; } break; } tagset.add(token); --- 359,369 ---- Set<String> tagset = new HashSet<>(); StringTokenizer tokens = new StringTokenizer(supportedLocaleString); while (tokens.hasMoreTokens()) { String token = tokens.nextToken(); if (token.equals("|")) { ! if (isNonENLangSupported()) { continue; } break; } tagset.add(token);
*** 396,406 **** /* * Look for "|" and construct a new locale string list. */ int barIndex = supportedLocaleString.indexOf('|'); StringTokenizer localeStringTokenizer; ! if (isNonUSLangSupported()) { localeStringTokenizer = new StringTokenizer(supportedLocaleString.substring(0, barIndex) + supportedLocaleString.substring(barIndex + 1)); } else { localeStringTokenizer = new StringTokenizer(supportedLocaleString.substring(0, barIndex)); } --- 396,406 ---- /* * Look for "|" and construct a new locale string list. */ int barIndex = supportedLocaleString.indexOf('|'); StringTokenizer localeStringTokenizer; ! if (isNonENLangSupported()) { localeStringTokenizer = new StringTokenizer(supportedLocaleString.substring(0, barIndex) + supportedLocaleString.substring(barIndex + 1)); } else { localeStringTokenizer = new StringTokenizer(supportedLocaleString.substring(0, barIndex)); }
*** 425,445 **** } } return locales; } ! private static volatile Boolean isNonUSSupported = null; /* ! * Returns true if the non US resources jar file exists in jre * extension directory. @returns true if the jar file is there. Otherwise, * returns false. */ ! private static boolean isNonUSLangSupported() { ! if (isNonUSSupported == null) { synchronized (JRELocaleProviderAdapter.class) { ! if (isNonUSSupported == null) { final String sep = File.separator; String localeDataJar = java.security.AccessController.doPrivileged( new sun.security.action.GetPropertyAction("java.home")) + sep + "lib" + sep + "ext" + sep + LOCALE_DATA_JAR_NAME; --- 425,445 ---- } } return locales; } ! private static volatile Boolean isNonENSupported = null; /* ! * Returns true if the non EN resources jar file exists in jre * extension directory. @returns true if the jar file is there. Otherwise, * returns false. */ ! private static boolean isNonENLangSupported() { ! if (isNonENSupported == null) { synchronized (JRELocaleProviderAdapter.class) { ! if (isNonENSupported == null) { final String sep = File.separator; String localeDataJar = java.security.AccessController.doPrivileged( new sun.security.action.GetPropertyAction("java.home")) + sep + "lib" + sep + "ext" + sep + LOCALE_DATA_JAR_NAME;
*** 447,464 **** /* * Peek at the installed extension directory to see if * localedata.jar is installed or not. */ final File f = new File(localeDataJar); ! isNonUSSupported = AccessController.doPrivileged(new PrivilegedAction<Boolean>() { @Override public Boolean run() { return f.exists(); } }); } } } ! return isNonUSSupported; } } --- 447,464 ---- /* * Peek at the installed extension directory to see if * localedata.jar is installed or not. */ final File f = new File(localeDataJar); ! isNonENSupported = AccessController.doPrivileged(new PrivilegedAction<Boolean>() { @Override public Boolean run() { return f.exists(); } }); } } } ! return isNonENSupported; } }