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

Reply via email to