JDK-6712234 : JDK7/JCK6b api/java_awt/CardLayout/index.html#AddLayoutComponent hangs sun4v if display redirected
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 7
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris
  • CPU: sparc
  • Submitted: 2008-06-09
  • Updated: 2012-08-20
  • Resolved: 2008-06-11
Related Reports
Duplicate :  
Description
JCK            : JCK-runtime-6b b24
J2SE           : FAIL - jdk 7 b28 32-bit jdk
Platform[s]    : FAIL - Solaris 10-niagara with DISPLAY redirected to another solaris
switch/Mode    : FAIL - -client -Xcomp

Not reproducible using 6u7
Not reproducible using 6u10

Test api/java_awt/CardLayout/index.html#AddLayoutComponent hangs if was run using JDK 7 b28 on solaris 10 -niagara system with display redirected to other solaris (Niagara is headless by default). At the same time test passes on sun4u both with and without display redirection.

jstack reports:

Found one Java-level deadlock:
=============================
"Thread-1":
  waiting for ownable synchronizer 0xd048fca0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "AWT-XAWT"
"AWT-XAWT":
  waiting to lock monitor 0x00083388 (object 0xd050f130, a java.awt.Frame),
  which is held by "main"
"main":
  waiting for ownable synchronizer 0xd048fca0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "AWT-XAWT"

Java stack information for the threads listed above:
===================================================
"Thread-1":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0xd048fca0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:769)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:802)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1132)
        at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
        at sun.awt.SunToolkit.awtLock(SunToolkit.java:269)
        at sun.awt.X11.XAtom.<init>(XAtom.java:265)
        at sun.awt.X11.XAtom.<init>(XAtom.java:232)
        at sun.awt.X11.XAtom.get(XAtom.java:178)
        at sun.awt.X11.XSystemTrayPeer.<clinit>(XSystemTrayPeer.java:52)
        at sun.awt.X11.XToolkit$2.run(XToolkit.java:277)
"AWT-XAWT":
        at java.awt.Component.getName(Component.java:815)
        - waiting to lock <0xd050f130> (a java.awt.Frame)
        at java.awt.Component.paramString(Component.java:7697)
        at java.awt.Container.paramString(Container.java:2852)
        at java.awt.Frame.paramString(Frame.java:967)
        at java.awt.Component.toString(Component.java:7717)
        at java.lang.String.valueOf(String.java:2838)
        at java.lang.StringBuilder.append(StringBuilder.java:132)
        at sun.awt.X11.XDecoratedPeer.requestWindowFocus(XDecoratedPeer.java:1170)
        at sun.awt.X11.XDecoratedPeer.handleWmTakeFocus(XDecoratedPeer.java:1041)
        at sun.awt.X11.XDecoratedPeer.handleClientMessage(XDecoratedPeer.java:1034)
        at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1074)
        at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1056)
        at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:499)
        at sun.awt.X11.XToolkit.run(XToolkit.java:594)
        at sun.awt.X11.XToolkit.run(XToolkit.java:529)
        at java.lang.Thread.run(Thread.java:674)
"main":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0xd048fca0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:769)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:802)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1132)
        at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
        at sun.awt.SunToolkit.awtLock(SunToolkit.java:269)
        at sun.awt.X11.XWM.removeSizeHints(XWM.java:809)
        at sun.awt.X11.XDecoratedPeer.setVisible(XDecoratedPeer.java:996)
        at sun.awt.X11.XFramePeer.setVisible(XFramePeer.java:329)
        at sun.awt.X11.XComponentPeer.show(XComponentPeer.java:497)
        at java.awt.Component.show(Component.java:1436)
        - locked <0xd0472680> (a java.awt.Component$AWTTreeLock)
        at java.awt.Window.show(Window.java:903)
        at java.awt.Component.show(Component.java:1469)
        at java.awt.Component.setVisible(Component.java:1421)
        at java.awt.Window.setVisible(Window.java:875)
        at javasoft.sqe.tests.api.java.awt.CardLayout.AddLayoutComponentTests.CardLayout2005_14(AddLayoutComponentTests.java:144)
        - locked <0xd050f130> (a java.awt.Frame)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:623)
        at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:406)
        at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
        at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:127)
        at javasoft.sqe.tests.api.java.awt.CardLayout.AddLayoutComponentTests.main(AddLayoutComponentTests.java:49)

Found 1 deadlock.

Comments
EVALUATION Resolved by the fix for 6708322.
11-06-2008