--- a/jdk/src/share/classes/java/util/Locale.java Tue Dec 21 11:20:32 2010 +0900
+++ b/jdk/src/share/classes/java/util/Locale.java Tue Dec 21 16:14:14 2010 -0800
@@ -1449,10 +1449,15 @@
* three-letter language abbreviation is not available for this locale.
*/
public String getISO3Language() throws MissingResourceException {
- String language3 = getISO3Code(_baseLocale.getLanguage(), LocaleISOData.isoLanguageTable);
+ String lang = _baseLocale.getLanguage();
+ if (lang.length() == 3) {
+ return lang;
+ }
+
+ String language3 = getISO3Code(lang, LocaleISOData.isoLanguageTable);
if (language3 == null) {
throw new MissingResourceException("Couldn't find 3-letter language code for "
- + _baseLocale.getLanguage(), "FormatData_" + toString(), "ShortLanguage");
+ + lang, "FormatData_" + toString(), "ShortLanguage");
}
return language3;
}