1 /*
2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3  *
4  * This code is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 only, as
6  * published by the Free Software Foundation.
7  *
8  * This code is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
11  * version 2 for more details (a copy is included in the LICENSE file that
12  * accompanied this code).
13  *
14  * You should have received a copy of the GNU General Public License version
15  * 2 along with this work; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17  *
18  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19  * or visit www.oracle.com if you need additional information or have any
20  * questions.
21  *
22  */
23 
24 /**
25  * @test @(#)TestSinhalaChar.java
26  * @key headful
27  * @summary verify lack of crash on U+0DDD.
28  * @bug 6795060
29  */
30 
31 import javax.swing.*;
32 import javax.swing.border.LineBorder;
33 import java.awt.*;
34 import java.awt.event.ActionEvent;
35 
36 public class TestSinhalaChar {
main(String[] args)37     public static void main(String[] args) {
38         SwingUtilities.invokeLater(new Runnable() {
39             public void run() {
40                 new TestSinhalaChar().run();
41             }
42         });
43     }
44     public static boolean AUTOMATIC_TEST=true;  // true; run test automatically, else manually at button push
45 
run()46     private void run() {
47         JFrame frame = new JFrame("Test Character (no crash = PASS)");
48         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
49         JPanel panel = new JPanel();
50         final JLabel label = new JLabel("(empty)");
51         label.setSize(400, 100);
52         label.setBorder(new LineBorder(Color.black));
53         label.setFont(new Font(Font.DIALOG, Font.PLAIN, 12));
54         if(AUTOMATIC_TEST) {  /* run the test automatically (else, manually) */
55            label.setText(Character.toString('\u0DDD'));
56         } else {
57         JButton button = new JButton("Set Char x0DDD");
58         button.addActionListener(new AbstractAction() {
59             public void actionPerformed(ActionEvent actionEvent) {
60            label.setText(Character.toString('\u0DDD'));
61             }
62         });
63         panel.add(button);
64         }
65         panel.add(label);
66 
67         frame.getContentPane().add(panel);
68         frame.pack();
69         frame.setVisible(true);
70     }
71 }
72 
73