--- old/src/java.desktop/unix/classes/sun/awt/X11/XRootWindow.java 2015-05-08 18:46:25.738254000 +0300 +++ new/src/java.desktop/unix/classes/sun/awt/X11/XRootWindow.java 2015-05-08 18:46:24.992659300 +0300 @@ -31,18 +31,22 @@ * common logical ancestor */ class XRootWindow extends XBaseWindow { - private static XRootWindow xawtRootWindow = null; - static XRootWindow getInstance() { - XToolkit.awtLock(); - try { - if (xawtRootWindow == null) { + private static class LazyHolder { + private static final XRootWindow xawtRootWindow; + + static { + XToolkit.awtLock(); + try { xawtRootWindow = new XRootWindow(); xawtRootWindow.init(xawtRootWindow.getDelayedParams().delete(DELAYED)); + } finally { + XToolkit.awtUnlock(); } - return xawtRootWindow; - } finally { - XToolkit.awtUnlock(); } + + } + static XRootWindow getInstance() { + return LazyHolder.xawtRootWindow; } private XRootWindow() {