--- 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<ThreadGroup>() {
- 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<ThreadGroup>) 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();