Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4936652

JDialog.setVisible, JDialog.dispose works incorrectly

XMLWordPrintable

    • b28
    • sparc
    • solaris_2.6

      ring "-monotype-arial-regular-r-normal--*-140-*-*-p-*-iso8859-1" to type FontStruct
      AccessibleJDialog2001: Passed. OKAY
      AccessibleJDialog0036: Passed. OKAY
      AccessibleJDialog0035: Passed. OKAY
      AccessibleJDialog0034: Passed. OKAY
      AccessibleJDialog0033: Passed. OKAY
      AccessibleJDialog0032: Passed. OKAY
      AccessibleJDialog0031: Passed. OKAY
      AccessibleJDialog0030: Passed. OKAY
      AccessibleJDialog0029: Passed. OKAY
      AccessibleJDialog0028: Passed. OKAY
      AccessibleJDialog0027: Passed. OKAY
      AccessibleJDialog0026: Passed. OKAY
      AccessibleJDialog0025: Passed. OKAY
      AccessibleJDialog0024: Passed. OKAY
      AccessibleJDialog0023: Passed. OKAY
      AccessibleJDialog0022: Failed. The method works incorrectly
      AccessibleJDialog0021: Passed. OKAY
      AccessibleJDialog0020: Passed. OKAY
      AccessibleJDialog0019: Passed. OKAY
      AccessibleJDialog0018: Passed. OKAY
      AccessibleJDialog0017: Passed. OKAY
      AccessibleJDialog0016: Passed. OKAY
      AccessibleJDialog0015: Passed. OKAY
      AccessibleJDialog0014: Passed. OKAY
      AccessibleJDialog0013: Passed. OKAY
      AccessibleJDialog0012: Passed. OKAY
      AccessibleJDialog0011: Passed. OKAY
      STATUS:Failed.test cases: 27; passed: 26; failed: 1; first test case failure: AccessibleJDialog0022
      result: Failed. test cases: 27; passed: 26; failed: 1; first test case failure: AccessibleJDialog0022


      test result: Failed. test cases: 27; passed: 26; failed: 1; first test case failure: AccessibleJDialog0022


      ======================================================================
      ###@###.### 2004-09-27
      Name: dsR10051 Date: 10/13/2003


      Filed By : SPB JCK team (###@###.###)
      JDK : java full version "1.5.0-beta-b23"
      JCK : 1.5
      Platform[s] : Solaris
      switch/Mode :
      JCK test owner : http://javaweb.eng/jct/sqe/JCK-tck/usr/owners.jto
      Failing Test [s] :
          api/javax_swing/JDialog/AccessibleJDialog/index.html#AccessibleComponent


      Problem description
      ===================
      The methods java.awt.Component.setVisible() and java.awt.Window.dispose() works
      incorrectly on javax.swing.JDialog object.
      The minimized test demonstrates that
      1. JDialog.isVisible returns false while setVisible(true) has been called.
      2. deadlock is possible during setVisible/dispose operations.
          
      Minimized test:
      ===============
      ------- test01.java -------
      import javax.swing.*;
      import javax.accessibility.*;

      public class test01 {

          public static void main(String[] args) {
              for (int i = 0 ; i <100; i++) {
                  System.out.println("i: " + i);
                  JDialog o = new JDialog();
                  o.setVisible(true);
                  if (!o.isVisible()) {
                      System.out.println("no visible"); System.out.flush();
                  }
                  o.setVisible(false);
                  if (o.isVisible()) {
                      System.out.println("visible"); System.out.flush();
                  }
                  o.dispose();
              }
              System.exit(0);
          }
      }


      ------- end-of-test01.java -------

      Minimized test output:
      ======================
      % java test01
      i: 0
      ...
      i: 38
      not visible
      i: 39
      ...
      i: 61
      ^\Full thread dump Java HotSpot(TM) Client VM (1.5.0-beta-b23 mixed mode):

      "AWT-EventQueue-0" prio=10 tid=0x00262048 nid=0xe waiting for monitor entry [0xf0400000..0xf0401838]
              at java.awt.Container.removeNotify(Container.java:2503)
              - waiting to lock <0xf0c30560> (a java.awt.Component$AWTTreeLock)
              at java.awt.Window$1DisposeAction.run(Window.java:604)
              at java.awt.Window.doDispose(Window.java:617)
              at java.awt.Dialog.doDispose(Dialog.java:625)
              at java.awt.Window.dispose(Window.java:574)
              at java.awt.Window.disposeImpl(Window.java:584)
              at java.awt.Window$1DisposeAction.run(Window.java:598)
              - locked <0xf0c41ec8> (a java.util.Vector)
              at java.awt.Window.doDispose(Window.java:617)
              at java.awt.Window.dispose(Window.java:574)
              at javax.swing.SwingUtilities$SharedOwnerFrame.dispose(SwingUtilities.java:1743)
              at javax.swing.SwingUtilities$SharedOwnerFrame.windowClosed(SwingUtilities.java:1722)
              at java.awt.Window.processWindowEvent(Window.java:1173)
              at javax.swing.JDialog.processWindowEvent(JDialog.java:407)
              at java.awt.Window.processEvent(Window.java:1128)
              at java.awt.Component.dispatchEventImpl(Component.java:3922)
              at java.awt.Container.dispatchEventImpl(Container.java:2009)
              at java.awt.Window.dispatchEventImpl(Window.java:1746)
              at java.awt.Component.dispatchEvent(Component.java:3770)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:214)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

      "AWT-Motif" daemon prio=10 tid=0x0023fc20 nid=0xd runnable [0xf0501000..0xf05016b8]
              at sun.awt.motif.MToolkit.run(Native Method)
              at java.lang.Thread.run(Thread.java:549)

      "AWT-Shutdown" prio=10 tid=0x0023f840 nid=0xc in Object.wait() [0xf0601000..0xf0601738]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf0c4c5a8> (a java.lang.Object)
              at java.lang.Object.wait(Object.java:429)
              at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
              - locked <0xf0c4c5a8> (a java.lang.Object)
              at java.lang.Thread.run(Thread.java:549)

      "Java2D Disposer" daemon prio=10 tid=0x002007d8 nid=0xb in Object.wait() [0xf0701000..0xf07019b8]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf0c49f28> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
              - locked <0xf0c49f28> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
              at sun.java2d.Disposer.run(Disposer.java:107)
              at java.lang.Thread.run(Thread.java:549)

      "Low Memory Detector" daemon prio=10 tid=0x0012bf28 nid=0x9 runnable [0x00000000..0x00000000]

      "CompilerThread0" daemon prio=10 tid=0x0012a5a8 nid=0x8 waiting on condition [0x00000000..0xfba800a0]

      "Signal Dispatcher" daemon prio=10 tid=0x00129818 nid=0x7 waiting on condition [0x00000000..0x00000000]

      "Finalizer" daemon prio=10 tid=0x000feea8 nid=0x6 in Object.wait() [0xfdd81000..0xfdd816b8]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf0c005b0> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
              - locked <0xf0c005b0> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=10 tid=0x000fdc80 nid=0x5 in Object.wait() [0xfde81000..0xfde81838]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf0c00498> (a java.lang.ref.Reference$Lock)
              at java.lang.Object.wait(Object.java:429)
              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:118)
              - locked <0xf0c00498> (a java.lang.ref.Reference$Lock)

      "main" prio=10 tid=0x0002daa8 nid=0x1 waiting for monitor entry [0xffbee000..0xffbeecd0]
              at java.awt.Window.getOwnedWindows(Window.java:844)
              - waiting to lock <0xf0c41ec8> (a java.util.Vector)
              at javax.swing.SwingUtilities$SharedOwnerFrame.installListeners(SwingUtilities.java:1697)
              at javax.swing.SwingUtilities$SharedOwnerFrame.addNotify(SwingUtilities.java:1690)
              at java.awt.Dialog.addNotify(Dialog.java:370)
              - locked <0xf0c30560> (a java.awt.Component$AWTTreeLock)
              at java.awt.Dialog.conditionalShow(Dialog.java:441)
              - locked <0xf0c30560> (a java.awt.Component$AWTTreeLock)
              at java.awt.Dialog.show(Dialog.java:499)
              at java.awt.Component.show(Component.java:1287)
              at java.awt.Component.setVisible(Component.java:1242)
              at test01.main(test01.java:10)

      "VM Thread" prio=10 tid=0x000fbd60 nid=0x4 runnable

      "VM Periodic Task Thread" prio=10 tid=0x0012cb68 nid=0xa waiting on condition


      Found one Java-level deadlock:
      =============================
      "AWT-EventQueue-0":
        waiting to lock monitor 0x000ffbf8 (object 0xf0c30560, a java.awt.Component$AWTTreeLock),
        which is held by "main"
      "main":
        waiting to lock monitor 0x000ffe38 (object 0xf0c41ec8, a java.util.Vector),
        which is held by "AWT-EventQueue-0"

      Java stack information for the threads listed above:
      ===================================================
      "AWT-EventQueue-0":
              at java.awt.Container.removeNotify(Container.java:2503)
              - waiting to lock <0xf0c30560> (a java.awt.Component$AWTTreeLock)
              at java.awt.Window$1DisposeAction.run(Window.java:604)
              at java.awt.Window.doDispose(Window.java:617)
              at java.awt.Dialog.doDispose(Dialog.java:625)
              at java.awt.Window.dispose(Window.java:574)
              at java.awt.Window.disposeImpl(Window.java:584)
              at java.awt.Window$1DisposeAction.run(Window.java:598)
              - locked <0xf0c41ec8> (a java.util.Vector)
              at java.awt.Window.doDispose(Window.java:617)
              at java.awt.Window.dispose(Window.java:574)
              at javax.swing.SwingUtilities$SharedOwnerFrame.dispose(SwingUtilities.java:1743)
              at javax.swing.SwingUtilities$SharedOwnerFrame.windowClosed(SwingUtilities.java:1722)
              at java.awt.Window.processWindowEvent(Window.java:1173)
              at javax.swing.JDialog.processWindowEvent(JDialog.java:407)
              at java.awt.Window.processEvent(Window.java:1128)
              at java.awt.Component.dispatchEventImpl(Component.java:3922)
              at java.awt.Container.dispatchEventImpl(Container.java:2009)
              at java.awt.Window.dispatchEventImpl(Window.java:1746)
              at java.awt.Component.dispatchEvent(Component.java:3770)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:214)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
      "main":
              at java.awt.Window.getOwnedWindows(Window.java:844)
              - waiting to lock <0xf0c41ec8> (a java.util.Vector)
              at javax.swing.SwingUtilities$SharedOwnerFrame.installListeners(SwingUtilities.java:1697)
              at javax.swing.SwingUtilities$SharedOwnerFrame.addNotify(SwingUtilities.java:1690)
              at java.awt.Dialog.addNotify(Dialog.java:370)
              - locked <0xf0c30560> (a java.awt.Component$AWTTreeLock)
              at java.awt.Dialog.conditionalShow(Dialog.java:441)
              - locked <0xf0c30560> (a java.awt.Component$AWTTreeLock)
              at java.awt.Dialog.show(Dialog.java:499)
              at java.awt.Component.show(Component.java:1287)
              at java.awt.Component.setVisible(Component.java:1242)
              at test01.main(test01.java:10)

      Found 1 deadlock.



      JCK test source location:
      ==========================
      /java/re/jck/1.5/promoted/latest/JCK-runtime-15/tests

      Test output:
      =============
      #Test Results (version 2)
      #Wed Oct 08 05:34:24 PDT 2003
      #checksum:1b015ff7645951a8
      #-----testdescription-----
      $file=/scratch/jckauto/work/r002work9087/JCK-runtime-15/tests/api/javax_swing/JDialog/AccessibleJDialog/index.html
      $root=/scratch/jckauto/work/r002work9087/JCK-runtime-15/tests
      executeArgs=-TestCaseID ALL
      executeClass=javasoft.sqe.tests.api.javax.swing.JDialog.AccessibleJDialog.AccessibleComponentTests
      id=AccessibleComponent
      keywords=positive runtime
      selectIf=!platform.isHeadless
      source=AccessibleComponentTests.java
      title=AccessibleComponent() methods tests

      #-----environment-----
      command.testExecute=com.sun.jck.lib.ExecJCKTestOtherJVMCmd LD_LIBRARY_PATH=/java/jck/pkgs/jckjni/tiger/beta/b06/solaris-sparcv9/32bit DISPLAY=talkinghead:2 HOME=${user.home} /scratch/jckauto/work/r002work9087/j2sdk1.5.0/bin/java -client -Xint -Xms32m -Xmx192m -Djava.security.policy=/scratch/jckauto/work/r002work9087/JCK-runtime-15/lib/jck.policy -Djava.rmi.activation.port=42006 -Dmultitest.testcaseOrder=reverseSorted -Xfuture -classpath $testSuiteRootDir/classes -Djava.security.policy=$testSuiteRootDir/lib/jck.policy -Djava.rmi.activation.port=42006 $testExecuteClass $testExecuteArgs

      #-----testresult-----
      description=file:///scratch/jckauto/work/r002work9087/JCK-runtime-15/tests/api/javax_swing/JDialog/AccessibleJDialog/index.html#AccessibleComponent
      end=Wed Oct 08 05:34:24 PDT 2003
      environment=beta_b06_r002
      execStatus=Failed. test cases: 27; passed: 26; failed: 1; first test case failure: AccessibleJDialog0022
      javatestOS=SunOS 5.9 (sparc)
      javatestVersion=3.1.4
      script=com.sun.jck.lib.JCKScript
      sections=script_messages testExecute
      start=Wed Oct 08 05:34:13 PDT 2003
      test=api/javax_swing/JDialog/AccessibleJDialog/index.html#AccessibleComponent
      timeoutSeconds=600
      work=/scratch/jckauto/work/r002work9087/jtwork/results/api/javax_swing/JDialog/AccessibleJDialog

      #section:script_messages
      ----------messages:(1/24)----------
      Executing test class...

      #section:testExecute
      ----------messages:(1/699)----------
      command: com.sun.jck.lib.ExecJCKTestOtherJVMCmd LD_LIBRARY_PATH=/java/jck/pkgs/jckjni/tiger/beta/b06/solaris-sparcv9/32bit DISPLAY=talkinghead:2 HOME= /scratch/jckauto/work/r002work9087/j2sdk1.5.0/bin/java -client -Xint -Xms32m -Xmx192m -Djava.security.policy=/scratch/jckauto/work/r002work9087/JCK-runtime-15/lib/jck.policy -Djava.rmi.activation.port=42006 -Dmultitest.testcaseOrder=reverseSorted -Xfuture -classpath /scratch/jckauto/work/r002work9087/JCK-runtime-15/classes -Djava.security.policy=/scratch/jckauto/work/r002work9087/JCK-runtime-15/lib/jck.policy -Djava.rmi.activation.port=42006 javasoft.sqe.tests.api.javax.swing.JDialog.AccessibleJDialog.AccessibleComponentTests -TestCaseID ALL
      ----------ref:(37/2271)----------
      ====== AccessibleJDialog2001 ====== public void requestFocus()
      ====== AccessibleJDialog0036 ====== public void removeFocusListener(FocusListener listener)
      ====== AccessibleJDialog0035 ====== public void addFocusListener(FocusListener listener)
      ====== AccessibleJDialog0034 ====== public boolean isFocusTraversable()
      ====== AccessibleJDialog0033 ====== public Accessible getAccessibleAt(Point point)
      ====== AccessibleJDialog0032 ====== public Dimension getSize()
      ====== AccessibleJDialog0031 ====== public void setSize(Dimension value)
      ====== AccessibleJDialog0030 ====== public Rectangle getBounds()
      ====== AccessibleJDialog0029 ====== public void setBounds(Rectangle value)
      ====== AccessibleJDialog0028 ====== public Point getLocation()
      ====== AccessibleJDialog0027 ====== public void setLocation(Point value)
      ====== AccessibleJDialog0026 ====== public Point getLocationOnScreen()
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      getLocationOnScreen works correctly
      ====== AccessibleJDialog0025 ====== public boolean contains(Point point)
      ====== AccessibleJDialog0024 ====== public boolean isShowing()
      ====== AccessibleJDialog0023 ====== public boolean isVisible()
      ====== AccessibleJDialog0022 ====== public void setVisible(boolean flag)
      ====== AccessibleJDialog0021 ====== public boolean isEnabled()
      ====== AccessibleJDialog0020 ====== public void setEnabled(boolean flag)
      ====== AccessibleJDialog0019 ====== public FontMetrics getFontMetrics(Font font)
      ====== AccessibleJDialog0018 ====== public Font getFont()
      ====== AccessibleJDialog0017 ====== public void setFont(Font value)
      ====== AccessibleJDialog0016 ====== public Cursor getCursor()
      ====== AccessibleJDialog0015 ====== public void setCursor(Cursor value)
      ====== AccessibleJDialog0014 ====== public Color getForeground()
      ====== AccessibleJDialog0013 ====== public void setForeground(Color color)
      ====== AccessibleJDialog0012 ====== public Color getBackground()
      ====== AccessibleJDialog0011 ====== public void setBackground(Color color)
      ----------log:(29/1206)----------
      Warning: Cannot convert st

            apikalev Andrey Pikalev
            sdasunw Sda Sda (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: