7158311: GraphicsDevice.setDisplayMode(...) leads to hang when DISPLAY variable points to Oracle Linux
8001463: Regression : Deadlock between AWT-XAWT thread and AWT-EventQueue-0 Thread when screen resolution changes
Reviewed-by: art, serb
Contributed-by: alexander.zvegintsev@oracle.com
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Tue Oct 08 13:57:44 2013 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Tue Oct 08 15:17:22 2013 +0400
@@ -240,9 +240,14 @@
@Override
public void dispatchEvent(XEvent ev) {
if (ev.get_type() == XConstants.ConfigureNotify) {
- ((X11GraphicsEnvironment)GraphicsEnvironment.
- getLocalGraphicsEnvironment()).
- displayChanged();
+ awtUnlock();
+ try {
+ ((X11GraphicsEnvironment)GraphicsEnvironment.
+ getLocalGraphicsEnvironment()).
+ displayChanged();
+ } finally {
+ awtLock();
+ }
}
}
});