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

REGRESSION: J2SE 1.4 rmic -iiop uses single slash for i18n chars

XMLWordPrintable

    • fcs
    • generic
    • generic
    • Verified

        As part of the bug fix for 4382124, both the RMI-IIOP stubs as well as the reverse IDL code generation were changed to avoid using double slashes in front of the Unicode escape for i18n characters in repository IDs.

        Unfortunately, this should have only been changed in the IDL code generation space.

        The result is that the repository ID generated in a RMI-IIOP stub looks like

        private static final String[] _type_ids = {
          "RMI:\U98DB\U884C\U6A5FReserver:0000000000000000"
        };

        which is illegal Java code since the javac compiler tries to convert \uhhhh to a real Unicode char, and complains about the U being capitalized. We actually want to see

        "RMI:\\u98DB\\u884C\\u6A5FReserver:000000000000"

        While the lower case U is being addressed by 4531406 going forward, the slash change is a regression between J2SE 1.3 and J2SE 1.4. It prevents use of rmic -iiop with classes with internationalized names, and in the J2EE code base, prevents EJBs from having internationalized names.

        This code was changed in rip-int on 01/23/01, and integrated into Merlin on 02/21/01, but the flaw was just revealed in the past two weeks through J2EE 1.3 post release i18n testing.

        This should be fixed before Merlin ships if possible, and can be fixed for J2EE 1.3.1 or a patch release, if necessary.



              eandersosunw Everett Anderson (Inactive)
              eandersosunw Everett Anderson (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: