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(LabelProviderTest.class.getName());
18 public LabelProviderTest(String n) {
23 protected int timeOut() {
28 public static class StrangePanel extends LabelProvider {
30 // BEGIN: deadlock.pref.size
31 public Dimension getPreferredSize () {
32 JLabel sampleLabel = createLabel();
33 return sampleLabel.getPreferredSize ();
35 // END: deadlock.pref.size
41 public void testCreateLabel() {
42 final LabelProvider instance = new StrangePanel();
44 class R implements Runnable {
46 LOG.info("In AWT thread");
47 JFrame f = new JFrame();
55 Logger.getLogger("org.apidesign"),
56 Logger.getLogger("global"),
57 "THREAD: main MSG: Begin" +
58 "THREAD: .*AWT.* MSG: In.*thread" +
59 "THREAD: main MSG: Will create JLabel" +
60 "THREAD: .*AWT.* MSG: Will create JLabel",
64 R showFrame = new R();
65 SwingUtilities.invokeLater(showFrame);
68 JLabel result = instance.createLabel();
69 assertNotNull("Creates the result", result);
73 // END: deadlock.test.controlflow