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

Igor Nekrestyanov Igor.Nekrestyanov at Sun.COM
Thu Nov 27 17:59:58 UTC 2008


Hi,

thank you for your report!

to simplify testcase please do the following:
   1) render to the offscreen bufferedimage, so no swing will be involved
   2) iterate through list of font files, we need to find which font 
exactly causes the problem

In other words ideal testcase simply draws single character of 
particular font into the offscreen buffered image.
It might be not possible to get it as simple as this but it would be 
nice if you can try.

It is a bit weird it did not crash with 6u7 but this may happen if 
different physical fonts were used.

-igor

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