Java 类sun.misc.JavaAWTAccess 实例源码

项目:jdk-1.7-annotated    文件:TimeZone.java   
/**
 * Returns the default TimeZone in an AppContext if any AppContext
 * has ever used. null is returned if any AppContext hasn't been
 * used or if the AppContext doesn't have the default TimeZone.
 * null is also returned if allowSetDefault is false.
 *
 * Note that javaAWTAccess may be null if sun.awt.AppContext class hasn't
 * been loaded. If so, it implies that AWTSecurityManager is not our
 * SecurityManager and we can use a local static variable.
 * This works around a build time issue.
 */
private static TimeZone getDefaultInAppContext() {
    if (allowSetDefault) {
        // JavaAWTAccess provides access implementation-private methods without using reflection.
        JavaAWTAccess javaAWTAccess = SharedSecrets.getJavaAWTAccess();
        if (System.getSecurityManager() == null || javaAWTAccess == null) {
            return mainAppContextDefault;
        } else if (javaAWTAccess.isDisposed()) {
            return null;
        } else {
            TimeZone tz = (TimeZone) javaAWTAccess.get(TimeZone.class);
            if (tz == null && javaAWTAccess.isMainAppContext()) {
                return mainAppContextDefault;
            } else {
                return tz;
            }
        }
    }
    return null;
}
项目:openjdk-jdk7u-jdk    文件:TimeZone.java   
/**
 * Returns the default TimeZone in an AppContext if any AppContext
 * has ever used. null is returned if any AppContext hasn't been
 * used or if the AppContext doesn't have the default TimeZone.
 * null is also returned if allowSetDefault is false.
 *
 * Note that javaAWTAccess may be null if sun.awt.AppContext class hasn't
 * been loaded. If so, it implies that AWTSecurityManager is not our
 * SecurityManager and we can use a local static variable.
 * This works around a build time issue.
 */
private static TimeZone getDefaultInAppContext() {
    if (allowSetDefault) {
        // JavaAWTAccess provides access implementation-private methods without using reflection.
        JavaAWTAccess javaAWTAccess = SharedSecrets.getJavaAWTAccess();
        if (System.getSecurityManager() == null || javaAWTAccess == null) {
            return mainAppContextDefault;
        } else if (javaAWTAccess.isDisposed()) {
            return null;
        } else {
            TimeZone tz = (TimeZone) javaAWTAccess.get(TimeZone.class);
            if (tz == null && javaAWTAccess.isMainAppContext()) {
                return mainAppContextDefault;
            } else {
                return tz;
            }
        }
    }
    return null;
}
项目:openjdk-icedtea7    文件:TimeZone.java   
/**
 * Returns the default TimeZone in an AppContext if any AppContext
 * has ever used. null is returned if any AppContext hasn't been
 * used or if the AppContext doesn't have the default TimeZone.
 * null is also returned if allowSetDefault is false.
 *
 * Note that javaAWTAccess may be null if sun.awt.AppContext class hasn't
 * been loaded. If so, it implies that AWTSecurityManager is not our
 * SecurityManager and we can use a local static variable.
 * This works around a build time issue.
 */
private static TimeZone getDefaultInAppContext() {
    if (allowSetDefault) {
        // JavaAWTAccess provides access implementation-private methods without using reflection.
        JavaAWTAccess javaAWTAccess = SharedSecrets.getJavaAWTAccess();
        if (javaAWTAccess == null) {
            return mainAppContextDefault;
        } else {
            if (!javaAWTAccess.isDisposed()) {
                TimeZone tz = (TimeZone)
                    javaAWTAccess.get(TimeZone.class);
                if (tz == null && javaAWTAccess.isMainAppContext()) {
                    return mainAppContextDefault;
                } else {
                    return tz;
                }
            }
        }
    }
    return null;
}
项目:openjdk-icedtea7    文件:TimeZone.java   
/**
 * Sets the default TimeZone in the AppContext to the given tz if
 * allowSetDefault is true. null is handled special: do nothing if any
 * AppContext hasn't been used, remove the default TimeZone in the
 * AppContext otherwise.
 *
 * Note that javaAWTAccess may be null if sun.awt.AppContext class hasn't
 * been loaded. If so, it implies that AWTSecurityManager is not our
 * SecurityManager and we can use a local static variable.
 * This works around a build time issue.
 */
private static void setDefaultInAppContext(TimeZone tz) {
    if (allowSetDefault) {
        // JavaAWTAccess provides access implementation-private methods without using reflection.
        JavaAWTAccess javaAWTAccess = SharedSecrets.getJavaAWTAccess();
        if (javaAWTAccess == null) {
            mainAppContextDefault = tz;
        } else {
            if (!javaAWTAccess.isDisposed()) {
                javaAWTAccess.put(TimeZone.class, tz);
                if (javaAWTAccess.isMainAppContext()) {
                    mainAppContextDefault = null;
                }
            }
        }
    }
}
项目:OpenJSharp    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        final Object ecx = javaAwtAccess.getAppletContext();
        if (ecx != null) {
            synchronized (javaAwtAccess) {
                // find the AppContext of the applet code
                // will be null if we are in the main app context.
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:jdk8u-jdk    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        final Object ecx = javaAwtAccess.getAppletContext();
        if (ecx != null) {
            synchronized (javaAwtAccess) {
                // find the AppContext of the applet code
                // will be null if we are in the main app context.
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:Java8CN    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        final Object ecx = javaAwtAccess.getAppletContext();
        if (ecx != null) {
            synchronized (javaAwtAccess) {
                // find the AppContext of the applet code
                // will be null if we are in the main app context.
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:jdk8u_jdk    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        final Object ecx = javaAwtAccess.getAppletContext();
        if (ecx != null) {
            synchronized (javaAwtAccess) {
                // find the AppContext of the applet code
                // will be null if we are in the main app context.
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:lookaside_java-1.8.0-openjdk    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        final Object ecx = javaAwtAccess.getAppletContext();
        if (ecx != null) {
            synchronized (javaAwtAccess) {
                // find the AppContext of the applet code
                // will be null if we are in the main app context.
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:jdk-1.7-annotated    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        synchronized (javaAwtAccess) {
            // find the AppContext of the applet code
            // will be null if we are in the main app context.
            final Object ecx = javaAwtAccess.getAppletContext();
            if (ecx != null) {
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    // The new logger context has its requiresDefaultLoggers
                    // flag set to true - so that these loggers will be
                    // lazily added when the context is firt accessed.
                    context = new LoggerContext(true);
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:jdk-1.7-annotated    文件:TimeZone.java   
/**
 * Sets the default TimeZone in the AppContext to the given tz if
 * allowSetDefault is true. null is handled special: do nothing if any
 * AppContext hasn't been used, remove the default TimeZone in the
 * AppContext otherwise.
 *
 * Note that javaAWTAccess may be null if sun.awt.AppContext class hasn't
 * been loaded. If so, it implies that AWTSecurityManager is not our
 * SecurityManager and we can use a local static variable.
 * This works around a build time issue.
 */
private static void setDefaultInAppContext(TimeZone tz) {
    if (allowSetDefault) {
        // JavaAWTAccess provides access implementation-private methods without using reflection.
        JavaAWTAccess javaAWTAccess = SharedSecrets.getJavaAWTAccess();
        if (System.getSecurityManager() == null || javaAWTAccess == null) {
            mainAppContextDefault = tz;
        } else if (!javaAWTAccess.isDisposed()) {
            javaAWTAccess.put(TimeZone.class, tz);
            if (javaAWTAccess.isMainAppContext()) {
                mainAppContextDefault = null;
            }
        }
    }
}
项目:infobip-open-jdk-8    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        final Object ecx = javaAwtAccess.getAppletContext();
        if (ecx != null) {
            synchronized (javaAwtAccess) {
                // find the AppContext of the applet code
                // will be null if we are in the main app context.
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:jdk8u-dev-jdk    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        final Object ecx = javaAwtAccess.getAppletContext();
        if (ecx != null) {
            synchronized (javaAwtAccess) {
                // find the AppContext of the applet code
                // will be null if we are in the main app context.
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:OLD-OpenJDK8    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        synchronized (javaAwtAccess) {
            // find the AppContext of the applet code
            // will be null if we are in the main app context.
            final Object ecx = javaAwtAccess.getAppletContext();
            if (ecx != null) {
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    context = new LoggerContext();
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:openjdk-jdk7u-jdk    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        // for each applet, it has its own LoggerContext isolated from others
        synchronized (javaAwtAccess) {
            // find the AppContext of the applet code
            // will be null if we are in the main app context.
            final Object ecx = javaAwtAccess.getAppletContext();
            if (ecx != null) {
                if (contextsMap == null) {
                    contextsMap = new WeakHashMap<>();
                }
                context = contextsMap.get(ecx);
                if (context == null) {
                    // Create a new LoggerContext for the applet.
                    // The new logger context has its requiresDefaultLoggers
                    // flag set to true - so that these loggers will be
                    // lazily added when the context is firt accessed.
                    context = new LoggerContext(true);
                    contextsMap.put(ecx, context);
                }
            }
        }
    }
    // for standalone app, return userContext
    return context != null ? context : userContext;
}
项目:openjdk-jdk7u-jdk    文件:TimeZone.java   
/**
 * Sets the default TimeZone in the AppContext to the given tz if
 * allowSetDefault is true. null is handled special: do nothing if any
 * AppContext hasn't been used, remove the default TimeZone in the
 * AppContext otherwise.
 *
 * Note that javaAWTAccess may be null if sun.awt.AppContext class hasn't
 * been loaded. If so, it implies that AWTSecurityManager is not our
 * SecurityManager and we can use a local static variable.
 * This works around a build time issue.
 */
private static void setDefaultInAppContext(TimeZone tz) {
    if (allowSetDefault) {
        // JavaAWTAccess provides access implementation-private methods without using reflection.
        JavaAWTAccess javaAWTAccess = SharedSecrets.getJavaAWTAccess();
        if (System.getSecurityManager() == null || javaAWTAccess == null) {
            mainAppContextDefault = tz;
        } else if (!javaAWTAccess.isDisposed()) {
            javaAWTAccess.put(TimeZone.class, tz);
            if (javaAWTAccess.isMainAppContext()) {
                mainAppContextDefault = null;
            }
        }
    }
}
项目:openjdk-icedtea7    文件:LogManager.java   
private LoggerContext getUserContext() {
    LoggerContext context = null;

    SecurityManager sm = System.getSecurityManager();
    JavaAWTAccess javaAwtAccess = SharedSecrets.getJavaAWTAccess();
    if (sm != null && javaAwtAccess != null) {
        synchronized (javaAwtAccess) {
            // AppContext.getAppContext() returns the system AppContext if called
            // from a system thread but Logger.getLogger might be called from
            // an applet code. Instead, find the AppContext of the applet code
            // from the execution stack.
            Object ecx = javaAwtAccess.getExecutionContext();
            if (ecx == null) {
                // fall back to thread group seach of AppContext
                ecx = javaAwtAccess.getContext();
            }
            if (ecx != null) {
                context = (LoggerContext)javaAwtAccess.get(ecx, LoggerContext.class);
                if (context == null) {
                    if (javaAwtAccess.isMainAppContext()) {
                        context = userContext;
                    } else {
                        // Create a new LoggerContext for the applet.
                        // The new logger context has its requiresDefaultLoggers
                        // flag set to true - so that these loggers will be
                        // lazily added when the context is firt accessed.
                        context = new LoggerContext(true);
                    }
                    javaAwtAccess.put(ecx, LoggerContext.class, context);
                }
            }
        }
    }
    return context != null ? context : userContext;
}