< prev index next >

src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java

Print this page


   1 /*
   2  * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 406 
 407 
 408     static String getAWTAppClassName() {
 409         return awtAppClassName;
 410     }
 411 
 412     public XToolkit() {
 413         super();
 414         if (PerformanceLogger.loggingEnabled()) {
 415             PerformanceLogger.setTime("XToolkit construction");
 416         }
 417 
 418         if (!GraphicsEnvironment.isHeadless()) {
 419             String mainClassName = null;
 420 
 421             StackTraceElement[] trace = (new Throwable()).getStackTrace();
 422             int bottom = trace.length - 1;
 423             if (bottom >= 0) {
 424                 mainClassName = trace[bottom].getClassName();
 425             }
 426             if (mainClassName == null || mainClassName.equals("")) {
 427                 mainClassName = "AWT";
 428             }
 429             awtAppClassName = getCorrectXIDString(mainClassName);
 430 
 431             init();
 432             XWM.init();
 433 
 434             toolkitThread = AccessController.doPrivileged((PrivilegedAction<Thread>) () -> {
 435                 String name = "AWT-XAWT";
 436                 Thread thread = new Thread(
 437                         ThreadGroupUtils.getRootThreadGroup(), this, name,
 438                         0, false);
 439                 thread.setContextClassLoader(null);
 440                 thread.setPriority(Thread.NORM_PRIORITY + 1);
 441                 thread.setDaemon(true);
 442                 return thread;
 443             });
 444             toolkitThread.start();
 445         }
 446     }


   1 /*
   2  * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 406 
 407 
 408     static String getAWTAppClassName() {
 409         return awtAppClassName;
 410     }
 411 
 412     public XToolkit() {
 413         super();
 414         if (PerformanceLogger.loggingEnabled()) {
 415             PerformanceLogger.setTime("XToolkit construction");
 416         }
 417 
 418         if (!GraphicsEnvironment.isHeadless()) {
 419             String mainClassName = null;
 420 
 421             StackTraceElement[] trace = (new Throwable()).getStackTrace();
 422             int bottom = trace.length - 1;
 423             if (bottom >= 0) {
 424                 mainClassName = trace[bottom].getClassName();
 425             }
 426             if (mainClassName == null || mainClassName.isEmpty()) {
 427                 mainClassName = "AWT";
 428             }
 429             awtAppClassName = getCorrectXIDString(mainClassName);
 430 
 431             init();
 432             XWM.init();
 433 
 434             toolkitThread = AccessController.doPrivileged((PrivilegedAction<Thread>) () -> {
 435                 String name = "AWT-XAWT";
 436                 Thread thread = new Thread(
 437                         ThreadGroupUtils.getRootThreadGroup(), this, name,
 438                         0, false);
 439                 thread.setContextClassLoader(null);
 440                 thread.setPriority(Thread.NORM_PRIORITY + 1);
 441                 thread.setDaemon(true);
 442                 return thread;
 443             });
 444             toolkitThread.start();
 445         }
 446     }


< prev index next >