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.JPanel;
9 import javax.swing.SwingUtilities;
10 import org.junit.Test;
11 import org.netbeans.junit.Log;
12 import org.netbeans.junit.NbTestCase;
13 import static org.junit.Assert.*;
15 // BEGIN: deadlock.test
16 public class DeadlockTest extends NbTestCase {
17 static final Logger LOG = Logger.getLogger(
18 DeadlockTest.class.getName()
21 public DeadlockTest(String n) {
26 protected int timeOut() {
31 public static class StrangePanel extends LabelProvider {
33 public Dimension getPreferredSize () {
36 JLabel sampleLabel = createLabel();
37 return sampleLabel.getPreferredSize();
38 } catch (InterruptedException ex) {
40 DeadlockTest.class.getName()).log(Level.SEVERE, null, ex
42 return super.getPreferredSize();
50 public void testCreateLabel() throws Exception {
51 final LabelProvider instance = new StrangePanel();
53 class R implements Runnable {
55 JFrame f = new JFrame();
62 R showFrame = new R();
63 SwingUtilities.invokeLater(showFrame);
66 JLabel result = instance.createLabel();
67 assertNotNull("Creates the result", result);