-
Bug
-
Resolution: Fixed
-
P3
-
6
When running the following regression tests on the latest mustang builds
test/java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java
test/java/awt/FullScreen/CauseDoDrawOvalDump/
it's easy to run into the following deadlock (when changing the display
mode or doing Alt+Tab):
Found one Java-level deadlock:
=============================
"AWT-EventQueue-0":
waiting to lock monitor 0x0aab507c (object 0x02e1b1f0, a sun.awt.Win32GraphicsDevice),
which is held by "main"
"main":
waiting to lock monitor 0x0aab5014 (object 0x02e709e0, a sun.awt.windows.WFramePeer),
which is held by "AWT-EventQueue-0"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-0":
at java.awt.GraphicsDevice.getFullScreenWindow(GraphicsDevice.java:252)
- waiting to lock <0x02e1b1f0> (a sun.awt.Win32GraphicsDevice)
at sun.awt.Win32GraphicsDevice.isD3DEnabledOnDevice(Win32GraphicsDevice.java:282)
at sun.java2d.d3d.D3DBackBufferSurfaceData.createData(D3DBackBufferSurfaceData.java:58)
at sun.java2d.windows.WinBackBuffer$WinBackBufferSurfaceManager.createAccelSurface(WinBackBuffer.java:59)
at sun.java2d.windows.WinBackBuffer$WinBackBufferSurfaceManager.createAccelSurface(WinBackBuffer.java:45)
at sun.java2d.windows.WinVolatileSurfaceManager.initAcceleratedSurface(WinVolatileSurfaceManager.java:115)
at sun.awt.image.VolatileSurfaceManager.initialize(VolatileSurfaceManager.java:97)
at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:66)
at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:76)
at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:87)
at sun.java2d.windows.WinBackBuffer.<init>(WinBackBuffer.java:28)
at sun.awt.Win32GraphicsConfig.createBackBuffer(Win32GraphicsConfig.java:358)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:380)
- locked <0x02e709e0> (a sun.awt.windows.WFramePeer)
- locked <0x02e3f658> (a java.awt.Component$AWTTreeLock)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:346)
at sun.awt.windows.WComponentPeer$2.run(WComponentPeer.java:394)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"main":
at sun.awt.Win32GraphicsDevice.setFullScreenWindow(Win32GraphicsDevice.java:356)
- waiting to lock <0x02e709e0> (a sun.awt.windows.WFramePeer)
- locked <0x02e1b1f0> (a sun.awt.Win32GraphicsDevice)
at CauseDoDrawOvalDump.<init>(CauseDoDrawOvalDump.java:61)
at CauseDoDrawOvalDump.main(CauseDoDrawOvalDump.java:27)
Found 1 deadlock.
test/java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java
test/java/awt/FullScreen/CauseDoDrawOvalDump/
it's easy to run into the following deadlock (when changing the display
mode or doing Alt+Tab):
Found one Java-level deadlock:
=============================
"AWT-EventQueue-0":
waiting to lock monitor 0x0aab507c (object 0x02e1b1f0, a sun.awt.Win32GraphicsDevice),
which is held by "main"
"main":
waiting to lock monitor 0x0aab5014 (object 0x02e709e0, a sun.awt.windows.WFramePeer),
which is held by "AWT-EventQueue-0"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-0":
at java.awt.GraphicsDevice.getFullScreenWindow(GraphicsDevice.java:252)
- waiting to lock <0x02e1b1f0> (a sun.awt.Win32GraphicsDevice)
at sun.awt.Win32GraphicsDevice.isD3DEnabledOnDevice(Win32GraphicsDevice.java:282)
at sun.java2d.d3d.D3DBackBufferSurfaceData.createData(D3DBackBufferSurfaceData.java:58)
at sun.java2d.windows.WinBackBuffer$WinBackBufferSurfaceManager.createAccelSurface(WinBackBuffer.java:59)
at sun.java2d.windows.WinBackBuffer$WinBackBufferSurfaceManager.createAccelSurface(WinBackBuffer.java:45)
at sun.java2d.windows.WinVolatileSurfaceManager.initAcceleratedSurface(WinVolatileSurfaceManager.java:115)
at sun.awt.image.VolatileSurfaceManager.initialize(VolatileSurfaceManager.java:97)
at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:66)
at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:76)
at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:87)
at sun.java2d.windows.WinBackBuffer.<init>(WinBackBuffer.java:28)
at sun.awt.Win32GraphicsConfig.createBackBuffer(Win32GraphicsConfig.java:358)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:380)
- locked <0x02e709e0> (a sun.awt.windows.WFramePeer)
- locked <0x02e3f658> (a java.awt.Component$AWTTreeLock)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:346)
at sun.awt.windows.WComponentPeer$2.run(WComponentPeer.java:394)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"main":
at sun.awt.Win32GraphicsDevice.setFullScreenWindow(Win32GraphicsDevice.java:356)
- waiting to lock <0x02e709e0> (a sun.awt.windows.WFramePeer)
- locked <0x02e1b1f0> (a sun.awt.Win32GraphicsDevice)
at CauseDoDrawOvalDump.<init>(CauseDoDrawOvalDump.java:61)
at CauseDoDrawOvalDump.main(CauseDoDrawOvalDump.java:27)
Found 1 deadlock.
- relates to
-
JDK-6230595 WComponentPeer.replaceSurfaceData should avoid synchronizing while create new surface data
- Open