Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-6649

String.toLowerCase/toUpperCase incorrect for supplementary characters

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.0M15
    • 5.0M15
    • Classlib
    • None

    Description

      Simple testcase:

          assertEquals("\uD801\uDC44", "\uD801\uDC1C".toLowerCase());
      

      Looking at modules/luni/src/main/java/java/lang/String.java, the problem is these methods iterate code units (char) not codepoints (int),
      and use Character.toLowerCase(char) and Character.toUpperCase(char), instead of Character.toLowerCase(int), and Character.toUpperCase(int)

      Attachments

        1. HARMONY-6649_filepermission.patch
          0.9 kB
          Robert Muir
        2. HARMONY-6649_tests.patch
          1 kB
          Robert Muir
        3. harmony6649.patch
          11 kB
          Tim Ellison

        Activity

          People

            tellison Tim Ellison
            rcmuir Robert Muir
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: