[OpenJDK 2D-Dev] JVM Crash: printing character \u0DDD in Swing app

Phil Race Phil.Race at Sun.COM
Thu Dec 4 18:46:05 UTC 2008


I reproduced this on JDK 1.6 update 10. The crash is in the ICU layout library
which is the same in JDk7 and OpenJDk etc. Layout is invoked because this is
an Indic language (Sinhalese) character.

I'm not sure what's going on. I don't think its specific to Ubuntu, although
I didn't see a crash on anything other than Linux, nor do I think its
specific to any particular font. I think its in the Indic character
processing. I'll forward the test case to the ICU layout maintainer.

-phil.

Patrick Wright wrote:
> Hi
> 
> First--if necessary, am glad to file a bug for this, but wanted to
> check and see if there was something I'm missing.
> 
> In trying to render a table of characters using their Unicode
> identifiers, I found that the character \u0DDD crashes my JVM as soon
> as it is rendered to a Swing component. I'm not particularly
> interested in that character--I am just trying to print out different
> characters in different fonts to easily track which glyphs are
> available per font. I found this by accident. I'm writing to this list
> as I suspect (but don't know) that it may be an issue with the font
> system.
> 
> java -version
> java version "1.6.0_10"
> Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
> Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
> 
> Ubuntu 8.10
> uname -r
> 2.6.27-7-generic
> 
> Small app that shows the problem:
> import javax.swing.*;
> import javax.swing.border.LineBorder;
> import java.awt.*;
> import java.awt.event.ActionEvent;
> 
> public class TestChar {
>     public static void main(String[] args) {
>         SwingUtilities.invokeLater(new Runnable() {
>             public void run() {
>                 new TestChar().run();
>             }
>         });
>     }
> 
>     private void run() {
>         JFrame frame = new JFrame("Test Character");
>         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>         JPanel panel = new JPanel();
>         final JLabel label = new JLabel("(empty)");
>         label.setSize(400, 100);
>         label.setBorder(new LineBorder(Color.black));
>         JButton button = new JButton("Set Char x0DDD");
>         button.addActionListener(new AbstractAction() {
>             public void actionPerformed(ActionEvent actionEvent) {
>                 label.setText(Character.toString('\u0DDD'));
>             }
>         });
>         panel.add(button);
>         panel.add(label);
> 
>         frame.getContentPane().add(panel);
>         frame.pack();
>         frame.setVisible(true);
>     }
> }
> 
> Run this, then click the button. On my Ubuntu system, clicking the
> button causes an immediate crash of the VM. Have also tested on OS X
> java -version
> java version "1.6.0_07"
> Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
> Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)
> 
> and the VM _did not crash_.
> 
> Output in the Ubuntu console following the crash is attached.
> 
> If I should just file a bug for this, please let me know.
> 
> Thanks!
> Patrick
> 



More information about the 2d-dev mailing list