Hello. Please review the fix for jdk/client. Bug: https://bugs.openjdk.java.net/browse/JDK-8239819 Fix: http://cr.openjdk.java.net/~serb/8239819/webrev.00
The XAWT for some native structures uses special java wrappers. These wrappers have to be created on top of the native pointer and provide access to the native fields directly w/o JNI methods. We have incorrect usage of such wrapper in the XToolkit class: Toolkit creates AwtScreenData wrapper on top of the XToolkit.getDefaultScreenData() https://hg.openjdk.java.net/jdk/jdk/file/321b6fbe6815/src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java#l344 But unfortunately, this native method returns the wrong pointer to getDefaultConfig(): https://hg.openjdk.java.net/jdk/jdk/file/321b6fbe6815/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c#l134 getScreenData() should be used instead of getDefaultConfig(), but since native data for default configuration is bigger than screen data we most of the time read some "random" information about visual info. This code was added 17 years ago to set the background color of the XIconWindow which is used as an icon in the dock/taskbar/minimized icon. Looks like nobody noticed since then that the color used as a border is incorrect, because this color is actually is invisible. I have confirmed this using different color variants and even checked mwm(kind of cde on linux). So decided revert that fix back. -- Best regards, Sergey.