diff -r a926ecef7eb3 -r fd98305f0d19 jdk/src/macosx/classes/sun/lwawt/LWToolkit.java --- a/jdk/src/macosx/classes/sun/lwawt/LWToolkit.java Thu Jan 16 17:49:40 2014 +0100 +++ b/jdk/src/macosx/classes/sun/lwawt/LWToolkit.java Wed Jan 15 11:53:54 2014 +0400 @@ -35,6 +35,7 @@ import sun.awt.*; import sun.print.*; +import sun.misc.ThreadGroupUtils; import static sun.lwawt.LWWindowPeer.PeerType; @@ -70,30 +71,17 @@ protected final void init() { AWTAutoShutdown.notifyToolkitThreadBusy(); - ThreadGroup mainTG = AccessController.doPrivileged( - new PrivilegedAction() { - public ThreadGroup run() { - ThreadGroup currentTG = Thread.currentThread().getThreadGroup(); - ThreadGroup parentTG = currentTG.getParent(); - while (parentTG != null) { - currentTG = parentTG; - parentTG = currentTG.getParent(); - } - return currentTG; - } - } - ); + ThreadGroup rootTG = AccessController.doPrivileged( + (PrivilegedAction) ThreadGroupUtils::getRootThreadGroup); Runtime.getRuntime().addShutdownHook( - new Thread(mainTG, new Runnable() { - public void run() { - shutdown(); - waitForRunState(STATE_CLEANUP); - } + new Thread(rootTG, () -> { + shutdown(); + waitForRunState(STATE_CLEANUP); }) ); - Thread toolkitThread = new Thread(mainTG, this, "AWT-LW"); + Thread toolkitThread = new Thread(rootTG, this, "AWT-LW"); toolkitThread.setDaemon(true); toolkitThread.setPriority(Thread.NORM_PRIORITY + 1); toolkitThread.start();