Download Jar. Libraryless. Click here for Pure Java version (1491L/11K).
1 | !7 |
2 | |
3 | // https://bugs.openjdk.java.net/browse/JDK-8183385 |
4 | |
5 | static String s0 = "Hello World"; |
6 | // (truncated) contents of jdk-headers-1.6.0/include/ibm/zos/jawt_md.h file encoding=IBM500/EBCDIC, read with UTF8 |
7 | |
8 | static String s1 = "a\\\u0015@\\@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\u0015@\\@@\ufffd\ufffd\ufffd@\u00d6\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0015@\\@@\ufffd\ufffd\ufffd@\u25a4\ufffd\ufffd\ufffd@\u0501\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0015@\\\u0015@\\@@\ufffd\ufffd\ufffd@\ufffd\ufffd\ufffdk@\u0441\ufffd\ufffdM\ufffd\ufffd]@\u3143\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd@\u0144\ufffd\ufffd\ufffd\ufffd\ufffdk@\ufffd\ufffd\u0015@\\@@M\ufffd]@\u00d6\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd@\ufffd\ufffd\ufffd@\u00d6\ufffd\ufffdK@\ufffd\ufffd\ufffd\ufffdk@\ufffd\ufffd\ufffd\ufffdK@\ufffd\ufffd\ufffd@\u0649\ufffd\ufffd\ufffd\ufffd@\u0645\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u0015@\\\u0015@\\"; |
9 | |
10 | p {
|
11 | swing { new main().go(); }
|
12 | } |
13 | |
14 | void go() {
|
15 | JFrame frame = new JFrame("BugRepro");
|
16 | frame.setBounds(100, 100, 800, 600); |
17 | frame.setContentPane(foo()); |
18 | frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); |
19 | frame.setVisible(true); |
20 | } |
21 | |
22 | JCheckBox c; |
23 | |
24 | JPanel foo() {
|
25 | JPanel panel = new JPanel(new BorderLayout()); |
26 | JButton b; |
27 | final JTextArea area = new JTextArea(); |
28 | JPanel p = new JPanel(new FlowLayout()); |
29 | panel.add(p, BorderLayout.NORTH); |
30 | p.add(b = new JButton("click me"));
|
31 | p.add(c = new JCheckBox("include strange chars", true));
|
32 | panel.add(new JLabel("Hello"), BorderLayout.SOUTH);
|
33 | panel.add(new JScrollPane(area), BorderLayout.CENTER); |
34 | |
35 | // need to set a new Document b/c setText() sets the text of the old document. |
36 | b.addActionListener(actionListener { area.setDocument(makeDoc()); });
|
37 | return panel; |
38 | } |
39 | |
40 | Document makeDoc() {
|
41 | Document doc = new PlainDocument(); |
42 | try {
|
43 | doc.insertString(0, makeString(), new SimpleAttributeSet()); |
44 | } catch (BadLocationException e) {
|
45 | throw new Error(e); |
46 | } |
47 | return doc; |
48 | } |
49 | |
50 | String makeString() {
|
51 | int MAX = 1000; |
52 | |
53 | StringBuilder buf = new StringBuilder(); |
54 | extracted(MAX, buf); |
55 | System.out.println("Including strange chars: " + c.isSelected());
|
56 | if (c.isSelected()) {
|
57 | buf.append(s1); // XXX This line slows down the rendering noticeably since it contains strange chars |
58 | } |
59 | extracted(MAX, buf); |
60 | |
61 | return buf.toString(); |
62 | } |
63 | |
64 | static void extracted(int MAX, StringBuilder buf) {
|
65 | for (int i = 0; i < MAX; i++) {
|
66 | buf.append(s0); |
67 | buf.append("\n");
|
68 | } |
69 | } |
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1017723 |
| Snippet name: | Swing Freeze Bug with certain characters |
| Eternal ID of this version: | #1017723/5 |
| Text MD5: | f65a56690fef26976c5c10e5bc7caced |
| Transpilation MD5: | b85bef3a93f5544abbdfc04e58f001fb |
| Author: | stefan |
| Category: | javax / gui |
| Type: | JavaX source code (desktop) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2018-08-04 18:23:29 |
| Source code size: | 2540 bytes / 69 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 615 / 1632 |
| Version history: | 4 change(s) |
| Referenced in: | [show references] |