1 package org.apidesign.deadlock;
3 import java.awt.Dimension;
4 import java.util.logging.Logger;
5 import javax.swing.JFrame;
6 import javax.swing.JLabel;
7 import javax.swing.JPanel;
8 import javax.swing.SwingUtilities;
10 import org.netbeans.junit.Log;
11 import org.netbeans.junit.NbTestCase;
12 import static org.junit.Assert.*;
14 // BEGIN: deadlock.test.controlflow
15 public class LabelProviderTest extends NbTestCase {
16 static final Logger LOG = Logger.getLogger(
17 LabelProviderTest.class.getName()
20 public LabelProviderTest(String n) {
25 protected int timeOut() {
30 public static class StrangePanel extends LabelProvider {
32 // BEGIN: deadlock.pref.size
33 public Dimension getPreferredSize () {
34 JLabel sampleLabel = createLabel();
35 return sampleLabel.getPreferredSize ();
37 // END: deadlock.pref.size
43 public void testCreateLabel() {
44 final LabelProvider instance = new StrangePanel();
46 class R implements Runnable {
48 LOG.info("In AWT thread");
49 JFrame f = new JFrame();
57 Logger.getLogger("org.apidesign"),
58 Logger.getLogger("global"),
59 "THREAD: main MSG: Begin" +
60 "THREAD: .*AWT.* MSG: In.*thread" +
61 "THREAD: main MSG: Will create JLabel" +
62 "THREAD: .*AWT.* MSG: Will create JLabel",
66 R showFrame = new R();
67 SwingUtilities.invokeLater(showFrame);
70 JLabel result = instance.createLabel();
71 assertNotNull("Creates the result", result);
75 // END: deadlock.test.controlflow