jdk/src/macosx/native/sun/awt/awt.m
changeset 23893 1a92335b55bb
parent 23010 6dadb192ad81
child 23900 fd98305f0d19
--- a/jdk/src/macosx/native/sun/awt/awt.m	Fri Dec 20 09:58:29 2013 -0800
+++ b/jdk/src/macosx/native/sun/awt/awt.m	Fri Dec 20 15:43:41 2013 +0400
@@ -434,6 +434,15 @@
         forceEmbeddedMode = YES;
     }
 
+    JNIEnv* env = [ThreadUtilities getJNIEnvUncached];
+    jclass jc_SunToolkit = (*env)->FindClass(env, "sun/awt/SunToolkit");
+    jmethodID sjm_getRootThreadGroup = (*env)->GetStaticMethodID(env, jc_SunToolkit, "getRootThreadGroup", "()Ljava/lang/ThreadGroup;");
+    jobject rootThreadGroup = (*env)->CallStaticObjectMethod(env, jc_SunToolkit, sjm_getRootThreadGroup);
+    appkitThreadGroup = (*env)->NewGlobalRef(env, rootThreadGroup);
+    // The current thread was attached in getJNIEnvUnchached.
+    // Detach it back. It will be reattached later if needed with a proper TG
+    [ThreadUtilities detachCurrentThread];
+
     BOOL headless = isHeadless(env);
 
     // We need to let Foundation know that this is a multithreaded application, if it isn't already.