1 package org.apidesign.deadlock;
3 import java.awt.Dimension;
4 import java.util.logging.Level;
5 import java.util.logging.Logger;
6 import javax.swing.JFrame;
7 import javax.swing.JLabel;
8 import javax.swing.SwingUtilities;
9 import org.netbeans.junit.NbTestCase;
10 import static org.junit.Assert.*;
12 // BEGIN: deadlock.test
13 public class DeadlockTest extends NbTestCase {
14 static final Logger LOG = Logger.getLogger(
15 DeadlockTest.class.getName()
18 public DeadlockTest(String n) {
23 protected int timeOut() {
28 public static class StrangePanel extends LabelProvider {
30 public Dimension getPreferredSize () {
33 JLabel sampleLabel = createLabel();
34 return sampleLabel.getPreferredSize();
35 } catch (InterruptedException ex) {
36 Logger l = Logger.getLogger(
37 DeadlockTest.class.getName()
39 l.log(Level.SEVERE, null, ex);
40 return super.getPreferredSize();
48 public void testCreateLabel() throws Exception {
49 if (Boolean.getBoolean("no.failures")) return;
50 final LabelProvider instance = new StrangePanel();
52 class R implements Runnable {
54 JFrame f = new JFrame();
61 R showFrame = new R();
62 SwingUtilities.invokeLater(showFrame);
65 JLabel result = instance.createLabel();
66 assertNotNull("Creates the result", result);