8308875: java/awt/Toolkit/GetScreenInsetsCustomGC/GetScreenInsetsCustomGC.java failed with 'Cannot invoke "sun.awt.X11GraphicsDevice.getInsets()" because "device" is null'

Reviewed-by: avu, prr
This commit is contained in:
Maxim Kartashev 2023-06-06 08:26:01 +00:00 committed by Alexey Ushakov
parent a7a0913005
commit 41bf2ad159
2 changed files with 13 additions and 10 deletions
src/java.desktop/unix/classes/sun/awt/X11
test/jdk

@ -887,18 +887,22 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
@Override
public Insets getScreenInsets(final GraphicsConfiguration gc) {
final X11GraphicsDevice device = (X11GraphicsDevice) gc.getDevice();
Insets insets = device.getInsets();
if (insets == null) {
synchronized (device) {
insets = device.getInsets();
if (insets == null) {
insets = getScreenInsetsImpl(gc);
device.setInsets(insets);
final GraphicsDevice gd = gc.getDevice();
if (gd instanceof X11GraphicsDevice x11Device) {
Insets insets = x11Device.getInsets();
if (insets == null) {
synchronized (x11Device) {
insets = x11Device.getInsets();
if (insets == null) {
insets = getScreenInsetsImpl(gc);
x11Device.setInsets(insets);
}
}
}
return (Insets) insets.clone();
} else {
return super.getScreenInsets(gc);
}
return (Insets) insets.clone();
}
/*

@ -459,7 +459,6 @@ java/awt/GraphicsDevice/CheckDisplayModes.java 8266242 macosx-aarch64
java/awt/GraphicsDevice/DisplayModes/UnknownRefrshRateTest.java 8286436 macosx-aarch64
java/awt/image/multiresolution/MultiresolutionIconTest.java 8291979 linux-x64,windows-all
java/awt/event/SequencedEvent/MultipleContextsFunctionalTest.java 8305061 macosx-x64
java/awt/Toolkit/GetScreenInsetsCustomGC/GetScreenInsetsCustomGC.java 8308875 linux-x64
sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java 8301177 linux-x64
############################################################################