src/share/classes/sun/awt/SunToolkit.java

Print this page

        

@@ -99,13 +99,11 @@
      * the 4-bytes limit for the int type. (CR 6799099)
      * One more bit is reserved for FIRST_HIGH_BIT.
      */
     public final static int MAX_BUTTONS_SUPPORTED = 20;
 
-    public SunToolkit() {
-        Runnable initEQ = new Runnable() {
-            public void run () {
+    private static void initEQ(AppContext appContext) {
                 EventQueue eventQueue;
 
                 String eqName = System.getProperty("AWT.EventQueueClass",
                                                    "java.awt.EventQueue");
 

@@ -114,19 +112,19 @@
                 } catch (Exception e) {
                     e.printStackTrace();
                     System.err.println("Failed loading " + eqName + ": " + e);
                     eventQueue = new EventQueue();
                 }
-                AppContext appContext = AppContext.getAppContext();
                 appContext.put(AppContext.EVENT_QUEUE_KEY, eventQueue);
 
                 PostEventQueue postEventQueue = new PostEventQueue(eventQueue);
                 appContext.put(POST_EVENT_QUEUE_KEY, postEventQueue);
             }
-        };
 
-        initEQ.run();
+    public SunToolkit() {
+        // 7122796: Always create an EQ for the main AppContext
+        initEQ(AppContext.getMainAppContext());
     }
 
     public boolean useBufferPerWindow() {
         return false;
     }

@@ -287,23 +285,11 @@
         // Create appContext before initialization of EventQueue, so all
         // the calls to AppContext.getAppContext() from EventQueue ctor
         // return correct values
         AppContext appContext = new AppContext(threadGroup);
 
-        EventQueue eventQueue;
-        String eqName = System.getProperty("AWT.EventQueueClass",
-                                           "java.awt.EventQueue");
-        try {
-            eventQueue = (EventQueue)Class.forName(eqName).newInstance();
-        } catch (Exception e) {
-            System.err.println("Failed loading " + eqName + ": " + e);
-            eventQueue = new EventQueue();
-        }
-        appContext.put(AppContext.EVENT_QUEUE_KEY, eventQueue);
-
-        PostEventQueue postEventQueue = new PostEventQueue(eventQueue);
-        appContext.put(POST_EVENT_QUEUE_KEY, postEventQueue);
+        initEQ(appContext);
 
         return appContext;
     }
 
     public static Field getField(final Class<?> klass, final String fieldName) {