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 }
|