jdk/src/share/classes/java/util/Locale.java
changeset 7783 8eb31199b5ed
parent 7513 7091fccbc86d
child 8149 768769e3cddd
--- 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;
     }