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

Committed Korean character is not displayed correctly

XMLWordPrintable

      SYNOPSIS
      --------
      Committed Korean character is not displayed correctly

      OPERATING SYSTEM
      ----------------
      Linux (tested on RHEL 6 IA32)

      JDK VERSION
      -----------
      JDK 7 (tested with b144)
      Licensee tested as far back as b78, and the problem exists there also. It seems likely that the issue has existed since the "Mixing Heavyweight and Lightweight Components" functionality was introduced in b19.

      REPRODUCTION INSTRUCTIONS
      -------------------------
      This testing requires Korean support inclusing fonts and input method.

      1. Compile and run attached program with FlowLayout option
            $ javac MixTest3.java
            $ java MixTest3 FlowLayout
      2. Move MixTest3 window to upper side and move input focus to TextArea
      3. Type "gks", then press F9 to display Hanja candidate
      4. Select one of character, but sometimes a half of character is still
         reversed
      5. If you cannot recreate this problem, try step 3 - 4 again
         (approximately 10 repetitions should be sufficient to reproduce)

      Expected output:
      Committed character is displayed correctly

      Observed output:
      Half of character is not displayed correctly

      Notes: The problem is reproducible with FlowLayout. However, we could not reproduce the issue with GridLayout and BorderLayout.

      TESTCASE SOURCE
      ---------------
      import javax.swing.*;
      import java.awt.*;
      import java.awt.event.*;

      class MixTest3 extends JFrame {
          MixTest3(String layout) {
              setTitle(layout);
              Container c = getContentPane();
              TextArea text = new TextArea();
              text.setPreferredSize(new Dimension(400, 100));
              if ("FlowLayout".equals(layout)) {
                  c.setLayout(new FlowLayout());
                  c.add(text);
              } else if ("GridLayout".equals(layout)) {
                  c.setLayout(new GridLayout(1,0));
                  c.add(text);
              } else if ("BorderLayout".equals(layout)) {
                  c.setLayout(new BorderLayout());
                  c.add(text, BorderLayout.CENTER);
              } else {
                  c.add(text);
              }
              pack();
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              setLocationByPlatform(true);
              setVisible(true);
          }

          public static void main(String[] args) {
              for (String s : args) {
                  new MixTest3(s);
              }
          }
      }

            Unassigned Unassigned
            dkorbel David Korbel (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: