Path: blob/master/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java
41159 views
/*1* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425package sun.java2d.marlin;262728public final class MarlinUtils {29// Marlin logger30private static final sun.util.logging.PlatformLogger LOG;3132static {33if (MarlinConst.USE_LOGGER) {34LOG = sun.util.logging.PlatformLogger.getLogger("sun.java2d.marlin");35} else {36LOG = null;37}38}3940private MarlinUtils() {41// no-op42}4344public static void logInfo(final String msg) {45if (MarlinConst.USE_LOGGER) {46LOG.info(msg);47} else if (MarlinConst.ENABLE_LOGS) {48System.out.print("INFO: ");49System.out.println(msg);50}51}5253public static void logException(final String msg, final Throwable th) {54if (MarlinConst.USE_LOGGER) {55LOG.warning(msg, th);56} else if (MarlinConst.ENABLE_LOGS) {57System.out.print("WARNING: ");58System.out.println(msg);59th.printStackTrace(System.err);60}61}6263// From sun.awt.util.ThreadGroupUtils6465/**66* Returns a root thread group.67* Should be called with {@link sun.security.util.SecurityConstants#MODIFY_THREADGROUP_PERMISSION}68*69* @return a root {@code ThreadGroup}70*/71public static ThreadGroup getRootThreadGroup() {72ThreadGroup currentTG = Thread.currentThread().getThreadGroup();73ThreadGroup parentTG = currentTG.getParent();74while (parentTG != null) {75currentTG = parentTG;76parentTG = currentTG.getParent();77}78return currentTG;79}80}818283