Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4638772

REGRESSION: getAvailableLocales finds only en, en_US on Windows J2RE

XMLWordPrintable

    • 01
    • x86
    • windows_nt, windows_2000
    • Verified



        Name: gm110360 Date: 02/15/2002


         FULL PRODUCT VERSION :
         java version "1.4.0"
         Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
         Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

         FULL OPERATING SYSTEM VERSION :Windows NT 4.0 sp6


         ADDITIONAL OPERATING SYSTEMS : At least all other Windows
         OS.



         A DESCRIPTION OF THE PROBLEM :
         It looks very much like both the sdk 1.4.0 and the 1.4.0
          java runtime (all languages) have been shipped missing the
         internationalisation support files i18n.jar..
         
         Both report EN, English (US) as the only availible locales,
         where as RC1 worked perfectly.

         You really should pull the downloads for the Windows sdk &
         jre, ASAP.

         I used the main FTP site to download both today
         (15/02/2002).

         REGRESSION. Last worked in version 1.3.1

         STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
         1.Install sdk1.4
         2.call Locale.getAvailableLocales()
         3.

         EXPECTED VERSUS ACTUAL BEHAVIOR :
         The sdk and jre (all languages) version should have (all
         languages) and not just EN, EN_US.

        This bug can be reproduced always.

         Release Regression From : 1.4
         The above release value was the last known release where this
         bug was known to work. Since then there has been a regression.

        (Review ID: 139755)
        ======================================================================

        There is one root cause, sun.text.resources.LocaleData.getAvailableLocales
        private method but there are several public apis depending on it.

        We have 9 first hand impact apis as below:

        . java.util.Calendar.getAvailableLocales()
        . java.util.Locale.getAvailableLocales()
        . java.text.Collator.getAvailableLocales()
        . java.text.NumberFormat.getAvailableLocales()
        . java.text.BreakIterator.getAvailableLocales()
        . java.text.DateFormat.getAvailableLocales()

        . com.sun.tools.javadoc.DocLocale(depends on Locale.getAvailableLocales)

        Since javadoc tool is a part of sdk, javadoc problem can be shown with -locale
        argument when sdk is installed in a path that contains a space.
        I followed this and javadoc tool was ended with

        javadoc: Locale not available ko_KR
        1 error

        . install sdk in c:\test dir\j2sdk1.4.0
        . javadoc -locale ko_KR -public -sourcepath ./src [your package]

        However this user scenario must be very very rare.

        ###@###.### 2002-02-21
        -----------------------------------------

        CAP member reported the same problem:

        J2SE Version (please include all output from java -version flag):
          java version "1.4.1-beta"
          Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-beta-b06)
          Java HotSpot(TM) Client VM (build 1.4.1-beta-b06, mixed mode)

        Does this problem occur on J2SE 1.3 or 1.4? Yes / No (pick one)
          No on 1.3, Yes on 1.4.0

        Operating System Configuration Information (be specific):
          Windows XP and Windows NT/4

        Bug Description:
          This bug was reported for version 1.4.0 on Windows XP and NT/4 systems,
          depending on the path environment. When running the sample
          attached on a French system (but it should be the same on
          a English system), the program lists all the "locales" available.
          If the path runs the Java program from the standard directory,
          i.e. \WINDOWS\system32, the sample attached lists only two locales :
           anglais
           anglais (Etats-Unis)
          If the path is set to run the Java program from \j2sdk1.4.1\bin
          all countries and languages are available. See the output attached.
          The two programs located in the two directories were the same.

          Steps to Reproduce (be specific):
          - Compile the sample,
          - Set the class path so that the Java program located at this
            \WINDOWS\system32 directory is running
          - run the sample program
          - Set the class path so that the Java program located at this
            \j2sdk1.4.1\bin directory is running
          - run the sample program

          Two outputs are the same.

        Test Program(LocaleMerlin.java)
        -------------------------------------------------------------------------------

        /**
         * LocaleMerlin.java
         */
        import java.lang.*;
        import java.util.*;

        /**
         * Class: LocaleMerlin
         */
        public class LocaleMerlin
           {

            /**
             * Method: main <br>
             * Note: Called only if we're an application. <br>
             * @param java.lang.String[] args the command line arguments
             * @return void
             */
            public static void main(java.lang.String[] args)
               {
                try
                   {
                    // Locale[] locales = Calendar.getInstance().getAvailableLocales();
                    Locale[] locales = Locale.getAvailableLocales();
                    for (int i = 0; i < locales.length; i++ )
                  System.out.println("" + locales[i].getDisplayName());
                    /*
                    String[] ISOLanguages = Locale.getISOLanguages();
                    for (int i = 0; i < ISOLanguages.length; i++ )
                  System.out.println("" + ISOLanguages[i]);
                    */
                   } /* End try */
                catch (java.lang.Throwable exc)
                   {
                    exc.printStackTrace(System.err);
                   } /* End catch */
               } /* End of Method: main */

           } /* End of Class: LocaleMerlin */

        --------------------------------------------------------------------------------

        H:\j2sdk1.4.1\bin
        19/03/2002 01:46 24 662 java.exe

        H:\WINDOWS\system32
        19/03/2002 01:46 24 662 java.exe

        ----------------------------------------------------------------------------------------------------------------------------

        set PATH=H:\WINDOWS\system32;H:\WINDOWS;H:\WINDOWS\System32\Wbem;

        java -showversion LocaleMerlin

        java version "1.4.1-beta"
        Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-beta-b06)
        Java HotSpot(TM) Client VM (build 1.4.1-beta-b06, mixed mode)

        anglais
        anglais (Etats-Unis)

        ---------------------------------------------------------------------------------------------------------------------------------------------------

        set
        PATH=H:\j2sdk1.4.1\bin;H:\WINDOWS\system32;H:\WINDOWS;H:\WINDOWS\System32\Wbem;

        java -showversion LocaleMerlin

        java version "1.4.1-beta"
        Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-beta-b06)
        Java HotSpot(TM) Client VM (build 1.4.1-beta-b06, mixed mode)

        arabe
        arabe (Emirats Arabes Unis)
        arabe (Bahreïn)
        arabe (Algérie)
        arabe (Egypte)
        arabe (Irak)
        arabe (Jordanie)
        arabe (Koweit)
        arabe (Liban)
        arabe (Libye)
        arabe (Maroc)
        arabe (Oman)
        arabe (Qatar)
        arabe (Arabie Saoudite)
        arabe (Soudan)
        arabe (Syrie)
        arabe (Tunisie)
        arabe (Yémen)
        biélorusse
        biélorusse (Biélo-Russie)
        bulgare
        bulgare (Bulgarie)
        catalan
        catalan (Espagne)
        tchèque
        tchèque (République Tchèque)
        danois
        danois (Danemark)
        allemand
        allemand (Autriche)
        allemand (Suisse)
        allemand (Allemagne)
        allemand (Luxembourg)
        grec
        grec (Grèce)
        anglais (Australie)
        anglais (Canada)
        anglais (Royaume-Uni)
        anglais (Irlande)
        anglais (Inde)
        anglais (Nouvelle-Zélande)
        anglais (Afrique du Sud)
        espagnol
        espagnol (Argentine)
        espagnol (Bolivie)
        espagnol (Chili)
        espagnol (Colombie)
        espagnol (Costa Rica)
        espagnol (République Dominicaine)
        espagnol (Equateur)
        espagnol (Espagne)
        espagnol (Guatemala)
        espagnol (Honduras)
        espagnol (Mexico)
        espagnol (Nicaragua)
        espagnol (Panama)
        espagnol (Pérou)
        espagnol (Porto Rico)
        espagnol (Paraguay)
        espagnol (El Salvador)
        espagnol (Uruguay)
        espagnol (Vénézuela)
        estonien
        estonien (Estonie)
        finnois
        finnois (Finlande)
        français
        français (Belgique)
        français (Canada)
        français (Suisse)
        français (France)
        français (Luxembourg)
        hindi (Inde)
        croate
        croate (Croatie)
        hongrois
        hongrois (Hongrie)
        islandais
        islandais (Islande)
        italien
        italien (Suisse)
        italien (Italie)
        hébreu
        hébreu (Israël)
        japonais
        japonais (Japon)
        coréen
        coréen (Corée du Sud)
        lithuanien
        lithuanien (Lithuanie)
        letton
        letton (Lettonie)
        macédonien
        macédonien (Macédoine)
        hollandais
        hollandais (Belgique)
        hollandais (Pays-Bas)
        norvégien
        norvégien (Norvège)
        norvégien (Norvège,Nynorsk)
        polonais
        polonais (Pologne)
        portugais
        portugais (Brésil)
        portugais (Portugal)
        roumain
        roumain (Roumanie)
        russe
        russe (Russie)
        serbo-croate
        serbo-croate (Yougoslavie)
        slovaque
        slovaque (Slovaquie)
        slovène
        slovène (Slovénie)
        albanais
        albanais (Albanie)
        serbe
        serbe (Yougoslavie)
        suédois
        suédois (Suède)
        thaï
        thaï (Thaïlande)
        turc
        turc (Turquie)
        ukrainien
        ukrainien (Ukraine)
        chinois
        chinois (Chine)
        chinois (Hong-Kong)
        chinois (Taiwan)
        anglais
        anglais (Etats-Unis)



              nlindenbsunw Norbert Lindenberg (Inactive)
              gmanwanisunw Girish Manwani (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: