jtulach@104: package org.apidesign.deadlock; jtulach@104: jtulach@104: import java.awt.Dimension; jtulach@104: import java.util.logging.Logger; jtulach@104: import javax.swing.JFrame; jtulach@104: import javax.swing.JLabel; jtulach@104: import javax.swing.JPanel; jtulach@104: import javax.swing.SwingUtilities; jtulach@104: import org.junit.Test; jtulach@104: import org.netbeans.junit.Log; jtulach@104: import org.netbeans.junit.NbTestCase; jtulach@104: import static org.junit.Assert.*; jtulach@104: jtulach@104: public class LabelProviderTest extends NbTestCase { jtulach@104: static final Logger LOG = Logger.getLogger(LabelProviderTest.class.getName()); jtulach@104: jtulach@104: public LabelProviderTest(String n) { jtulach@104: super(n); jtulach@104: } jtulach@104: jtulach@104: @Override jtulach@104: protected int timeOut() { jtulach@104: return 10000; jtulach@104: } jtulach@104: jtulach@104: jtulach@104: public static class StrangePanel extends LabelProvider { jtulach@104: @Override jtulach@104: // BEGIN: deadlock.pref.size jtulach@104: public Dimension getPreferredSize () { jtulach@104: JLabel sampleLabel = createLabel(); jtulach@104: return sampleLabel.getPreferredSize (); jtulach@104: } jtulach@104: // END: deadlock.pref.size jtulach@104: } jtulach@104: jtulach@104: jtulach@104: jtulach@104: jtulach@104: public void testCreateLabel() { jtulach@104: final LabelProvider instance = new StrangePanel(); jtulach@104: jtulach@104: class R implements Runnable { jtulach@104: public void run() { jtulach@104: LOG.info("In AWT thread"); jtulach@104: JFrame f = new JFrame(); jtulach@104: f.add(instance); jtulach@104: f.setVisible(true); jtulach@104: f.pack(); jtulach@104: } jtulach@104: } jtulach@104: jtulach@104: Log.controlFlow( jtulach@104: Logger.getLogger("org.apidesign"), jtulach@104: Logger.getLogger("global"), jtulach@104: "THREAD: main MSG: Begin" + jtulach@104: "THREAD: .*AWT.* MSG: In.*thread" + jtulach@104: "THREAD: main MSG: Will create JLabel" + jtulach@104: "THREAD: .*AWT.* MSG: Will create JLabel", jtulach@104: 300 jtulach@104: ); jtulach@104: jtulach@104: R showFrame = new R(); jtulach@104: SwingUtilities.invokeLater(showFrame); jtulach@104: jtulach@104: LOG.info("Begin"); jtulach@104: JLabel result = instance.createLabel(); jtulach@104: assertNotNull("Creates the result", result); jtulach@104: } jtulach@104: jtulach@104: }