Search in sources :

Example 1 with DisposerRecord

use of sun.java2d.DisposerRecord in project jdk8u_jdk by JetBrains.

the class TwentyThousandTest method doAttempt.

private static void doAttempt() throws Exception {
    SwingUtilities.invokeAndWait(new Runnable() {

        public void run() {
            final JFileChooser chooser = new JFileChooser(tmpDir);
            chooser.updateUI();
            // Postpone JFileChooser closing until it becomes visible
            chooser.addHierarchyListener(new HierarchyListener() {

                @Override
                public void hierarchyChanged(HierarchyEvent e) {
                    if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
                        if (chooser.isShowing()) {
                            Thread thread = new Thread(new Runnable() {

                                public void run() {
                                    try {
                                        Thread.sleep(INTERVAL);
                                        // Close JFileChooser
                                        SwingUtilities.invokeLater(new Runnable() {

                                            public void run() {
                                                chooser.cancelSelection();
                                            }
                                        });
                                    } catch (InterruptedException e) {
                                        throw new RuntimeException(e);
                                    }
                                }
                            });
                            thread.start();
                        }
                    }
                }
            });
            chooser.showOpenDialog(null);
        }
    });
    DisposerRecord disposerRecord = new DisposerRecord() {

        public void dispose() {
            disposerComplete = true;
        }
    };
    disposerComplete = false;
    Disposer.addRecord(new Object(), disposerRecord);
    while (!disposerComplete) {
        Util.generateOOME();
    }
}
Also used : DisposerRecord(sun.java2d.DisposerRecord) HierarchyEvent(java.awt.event.HierarchyEvent) HierarchyListener(java.awt.event.HierarchyListener)

Aggregations

HierarchyEvent (java.awt.event.HierarchyEvent)1 HierarchyListener (java.awt.event.HierarchyListener)1 DisposerRecord (sun.java2d.DisposerRecord)1