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) {
39 Logger l = Logger.getLogger(
40 DeadlockTest.class.getName()
42 l.log(Level.SEVERE, null, ex);
43 return super.getPreferredSize();
51 public void testCreateLabel() throws Exception {
52 final LabelProvider instance = new StrangePanel();
54 class R implements Runnable {
56 JFrame f = new JFrame();
63 R showFrame = new R();
64 SwingUtilities.invokeLater(showFrame);
67 JLabel result = instance.createLabel();
68 assertNotNull("Creates the result", result);