亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? logfactory.java

?? Jakarta小組開發的可集成在各種系統中的共用登入管理程序。
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
        if (factory == null  &&  props != null) {            String factoryClass = props.getProperty(FACTORY_PROPERTY);            if (factoryClass != null) {                factory = newFactory(factoryClass, contextClassLoader);            }        }        // Fourth, try the fallback implementation class        if (factory == null) {            factory = newFactory(FACTORY_DEFAULT, LogFactory.class.getClassLoader());        }        if (factory != null) {            /**             * Always cache using context class loader.             */            cacheFactory(contextClassLoader, factory);            if( props!=null ) {                Enumeration names = props.propertyNames();                while (names.hasMoreElements()) {                    String name = (String) names.nextElement();                    String value = props.getProperty(name);                    factory.setAttribute(name, value);                }            }        }        return factory;    }    /**     * Convenience method to return a named logger, without the application     * having to care about factories.     *     * @param clazz Class from which a log name will be derived     *     * @exception LogConfigurationException if a suitable <code>Log</code>     *  instance cannot be returned     */    public static Log getLog(Class clazz)        throws LogConfigurationException {        return (getFactory().getInstance(clazz));    }    /**     * Convenience method to return a named logger, without the application     * having to care about factories.     *     * @param name Logical name of the <code>Log</code> instance to be     *  returned (the meaning of this name is only known to the underlying     *  logging implementation that is being wrapped)     *     * @exception LogConfigurationException if a suitable <code>Log</code>     *  instance cannot be returned     */    public static Log getLog(String name)        throws LogConfigurationException {        return (getFactory().getInstance(name));    }    /**     * Release any internal references to previously created {@link LogFactory}     * instances that have been associated with the specified class loader     * (if any), after calling the instance method <code>release()</code> on     * each of them.     *     * @param classLoader ClassLoader for which to release the LogFactory     */    public static void release(ClassLoader classLoader) {        synchronized (factories) {            LogFactory factory = (LogFactory) factories.get(classLoader);            if (factory != null) {                factory.release();                factories.remove(classLoader);            }        }    }    /**     * Release any internal references to previously created {@link LogFactory}     * instances, after calling the instance method <code>release()</code> on     * each of them.  This is useful in environments like servlet containers,     * which implement application reloading by throwing away a ClassLoader.     * Dangling references to objects in that class loader would prevent     * garbage collection.     */    public static void releaseAll() {        synchronized (factories) {            Enumeration elements = factories.elements();            while (elements.hasMoreElements()) {                LogFactory element = (LogFactory) elements.nextElement();                element.release();            }            factories.clear();        }    }    // ------------------------------------------------------ Protected Methods    /**     * Return the thread context class loader if available.     * Otherwise return null.     *     * The thread context class loader is available for JDK 1.2     * or later, if certain security conditions are met.     *     * @exception LogConfigurationException if a suitable class loader     * cannot be identified.     */    protected static ClassLoader getContextClassLoader()        throws LogConfigurationException    {        ClassLoader classLoader = null;        try {            // Are we running on a JDK 1.2 or later system?            Method method = Thread.class.getMethod("getContextClassLoader", null);            // Get the thread context class loader (if there is one)            try {                classLoader = (ClassLoader)method.invoke(Thread.currentThread(), null);            } catch (IllegalAccessException e) {                throw new LogConfigurationException                    ("Unexpected IllegalAccessException", e);            } catch (InvocationTargetException e) {                /**                 * InvocationTargetException is thrown by 'invoke' when                 * the method being invoked (getContextClassLoader) throws                 * an exception.                 *                 * getContextClassLoader() throws SecurityException when                 * the context class loader isn't an ancestor of the                 * calling class's class loader, or if security                 * permissions are restricted.                 *                 * In the first case (not related), we want to ignore and                 * keep going.  We cannot help but also ignore the second                 * with the logic below, but other calls elsewhere (to                 * obtain a class loader) will trigger this exception where                 * we can make a distinction.                 */                if (e.getTargetException() instanceof SecurityException) {                    ;  // ignore                } else {                    // Capture 'e.getTargetException()' exception for details                    // alternate: log 'e.getTargetException()', and pass back 'e'.                    throw new LogConfigurationException                        ("Unexpected InvocationTargetException", e.getTargetException());                }            }        } catch (NoSuchMethodException e) {            // Assume we are running on JDK 1.1            classLoader = LogFactory.class.getClassLoader();        }        // Return the selected class loader        return classLoader;    }    /**     * Check cached factories (keyed by contextClassLoader)     */    private static LogFactory getCachedFactory(ClassLoader contextClassLoader)    {        LogFactory factory = null;        if (contextClassLoader != null)            factory = (LogFactory) factories.get(contextClassLoader);        return factory;    }    private static void cacheFactory(ClassLoader classLoader, LogFactory factory)    {        if (classLoader != null && factory != null)            factories.put(classLoader, factory);    }    /**     * Return a new instance of the specified <code>LogFactory</code>     * implementation class, loaded by the specified class loader.     * If that fails, try the class loader used to load this     * (abstract) LogFactory.     *     * @param factoryClass Fully qualified name of the <code>LogFactory</code>     *  implementation class     * @param classLoader ClassLoader from which to load this class     *     * @exception LogConfigurationException if a suitable instance     *  cannot be created     */    protected static LogFactory newFactory(final String factoryClass,                                           final ClassLoader classLoader)        throws LogConfigurationException    {        Object result = AccessController.doPrivileged(            new PrivilegedAction() {                public Object run() {                    // This will be used to diagnose bad configurations                    // and allow a useful message to be sent to the user                    Class logFactoryClass = null;                    try {                        if (classLoader != null) {                            try {                                // First the given class loader param (thread class loader)                                // Warning: must typecast here & allow exception                                // to be generated/caught & recast properly.                                logFactoryClass = classLoader.loadClass(factoryClass);                                return (LogFactory) logFactoryClass.newInstance();                            } catch (ClassNotFoundException ex) {                                if (classLoader == LogFactory.class.getClassLoader()) {                                    // Nothing more to try, onwards.                                    throw ex;                                }                                // ignore exception, continue                            } catch (NoClassDefFoundError e) {                                if (classLoader == LogFactory.class.getClassLoader()) {                                    // Nothing more to try, onwards.                                    throw e;                                }                            } catch(ClassCastException e){                              if (classLoader == LogFactory.class.getClassLoader()) {                                    // Nothing more to try, onwards (bug in loader implementation).                                    throw e;                               }                            }                            // Ignore exception, continue                        }                        /* At this point, either classLoader == null, OR                         * classLoader was unable to load factoryClass.                         * Try the class loader that loaded this class:                         * LogFactory.getClassLoader().                         *                         * Notes:                         * a) LogFactory.class.getClassLoader() may return 'null'                         *    if LogFactory is loaded by the bootstrap classloader.                         * b) The Java endorsed library mechanism is instead                         *    Class.forName(factoryClass);                         */                        // Warning: must typecast here & allow exception                        // to be generated/caught & recast properly.                        logFactoryClass = Class.forName(factoryClass);                        return (LogFactory) logFactoryClass.newInstance();                    } catch (Exception e) {                        // Check to see if we've got a bad configuration                        if (logFactoryClass != null                            && !LogFactory.class.isAssignableFrom(logFactoryClass)) {                            return new LogConfigurationException(                                "The chosen LogFactory implementation does not extend LogFactory."                                + " Please check your configuration.",                                e);                        }                        return new LogConfigurationException(e);                    }                }            });        if (result instanceof LogConfigurationException)            throw (LogConfigurationException)result;        return (LogFactory)result;    }    private static InputStream getResourceAsStream(final ClassLoader loader,                                                   final String name)    {        return (InputStream)AccessController.doPrivileged(            new PrivilegedAction() {                public Object run() {                    if (loader != null) {                        return loader.getResourceAsStream(name);                    } else {                        return ClassLoader.getSystemResourceAsStream(name);                    }                }            });    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美喷潮久久久xxxxx| 亚洲美女在线国产| 蜜臀av一级做a爰片久久| 在线观看av一区| 亚洲午夜三级在线| 色88888久久久久久影院野外| 国产精品五月天| 成人av高清在线| 国产欧美日产一区| 精品一区二区综合| 久久嫩草精品久久久久| 国产一区二区三区视频在线播放| www国产精品av| 国产精品资源站在线| 久久久久久久性| 成人免费看片app下载| 日韩理论电影院| 欧美日韩一卡二卡| 日本欧美在线观看| 久久伊99综合婷婷久久伊| 手机精品视频在线观看| 欧美一级日韩免费不卡| 国产在线一区二区综合免费视频| 久久亚洲二区三区| 国产精品一二三四区| 久久伊99综合婷婷久久伊| 粉嫩一区二区三区性色av| 国产精品国产三级国产普通话三级| 成人av网站在线| 香蕉久久夜色精品国产使用方法| 欧美狂野另类xxxxoooo| 日本视频一区二区三区| 欧美激情在线免费观看| 91国产福利在线| 五月开心婷婷久久| 久久精品免费在线观看| 成人黄色电影在线| 五月婷婷综合网| 久久久不卡网国产精品二区| 不卡的av中国片| 亚洲国产精品人人做人人爽| 日韩欧美国产精品| 91在线高清观看| 麻豆国产精品777777在线| 国产精品国产三级国产aⅴ入口| 欧美三级中文字幕| 国产精品自拍在线| 伊人开心综合网| 久久欧美一区二区| 欧美亚洲精品一区| 国产真实乱子伦精品视频| 一区二区三区在线免费播放| 精品av久久707| 欧美性猛片xxxx免费看久爱| 国产v日产∨综合v精品视频| 午夜不卡在线视频| 亚洲天堂网中文字| 久久久久久免费| 欧美三级蜜桃2在线观看| 久久精品国产色蜜蜜麻豆| 国产精品久久久久毛片软件| 在线综合亚洲欧美在线视频| 99re这里只有精品首页| 蜜桃一区二区三区在线| 亚洲一区二区美女| 国产精品久久久久桃色tv| 久久综合久久综合亚洲| 69久久夜色精品国产69蝌蚪网| 91视频免费播放| 奇米精品一区二区三区在线观看 | 国产精品色噜噜| 精品理论电影在线观看| 欧美午夜精品免费| 91麻豆免费观看| 成人一区二区三区在线观看| 精品中文字幕一区二区小辣椒 | 日韩一区二区三区四区五区六区| 99在线视频精品| 国产成人在线视频免费播放| 极品少妇xxxx偷拍精品少妇| 日本中文字幕不卡| 亚洲1区2区3区视频| 亚洲国产裸拍裸体视频在线观看乱了| 国产欧美精品一区二区三区四区 | 日本一区二区三区国色天香 | 国产一区二区成人久久免费影院| 日韩电影在线免费观看| 三级精品在线观看| 视频一区二区欧美| 日本成人在线看| 美女脱光内衣内裤视频久久网站 | 色www精品视频在线观看| av中文字幕不卡| 成人a免费在线看| 成人av中文字幕| jizzjizzjizz欧美| av一本久道久久综合久久鬼色| 国产福利91精品一区| 国产一区二区三区四| 国产成人午夜视频| 国产91精品免费| 波多野结衣在线一区| 日本伦理一区二区| 在线成人av网站| 欧美日韩你懂的| 欧美久久久影院| 日韩欧美在线网站| 久久久久久久综合色一本| 国产女主播在线一区二区| 国产精品短视频| 一区二区三区在线视频免费观看| 亚洲美女屁股眼交| 日韩精品一卡二卡三卡四卡无卡| 日韩va欧美va亚洲va久久| 韩国欧美国产1区| va亚洲va日韩不卡在线观看| 91国偷自产一区二区三区成为亚洲经典| 高清视频一区二区| 色94色欧美sute亚洲线路一ni| 欧美美女直播网站| 26uuu亚洲婷婷狠狠天堂| 国产精品免费久久| 亚洲狠狠爱一区二区三区| 亚洲综合激情另类小说区| 裸体歌舞表演一区二区| 成人ar影院免费观看视频| 欧美人狂配大交3d怪物一区 | 欧美在线free| 国产午夜亚洲精品理论片色戒| 亚洲成人第一页| av电影在线观看一区| 精品国产sm最大网站免费看| 夜夜夜精品看看| 99精品视频在线观看| www国产精品av| 日本vs亚洲vs韩国一区三区| 在线观看网站黄不卡| 国产精品美女久久久久久久网站| 久久爱另类一区二区小说| 欧美日韩精品福利| 亚洲激情图片一区| 99精品视频在线观看| 国产女人18水真多18精品一级做| 玖玖九九国产精品| 在线播放91灌醉迷j高跟美女 | 五月婷婷色综合| 色婷婷激情久久| 中文字幕在线观看一区| 国产丶欧美丶日本不卡视频| 日韩女优av电影| 人人超碰91尤物精品国产| 欧美日韩专区在线| 一区二区三区在线影院| 99久久久久免费精品国产| 中文在线一区二区| 国产suv精品一区二区883| 国产视频一区二区在线观看| 国产在线精品免费| 久久久久久久综合色一本| 国产精品中文字幕日韩精品 | 日韩一级成人av| 日韩成人精品在线观看| 欧美一区二区在线观看| 免费一级欧美片在线观看| 555夜色666亚洲国产免| 日本成人在线视频网站| 日韩欧美的一区| 国产一区二区成人久久免费影院 | 色综合色综合色综合色综合色综合| 中文字幕巨乱亚洲| zzijzzij亚洲日本少妇熟睡| 国产精品视频第一区| va亚洲va日韩不卡在线观看| 中文字幕在线视频一区| 色婷婷激情久久| 水蜜桃久久夜色精品一区的特点| 欧美日韩一区二区三区不卡| 日韩精品福利网| 久久综合狠狠综合久久激情| 大白屁股一区二区视频| 亚洲日本成人在线观看| 欧美婷婷六月丁香综合色| 日韩av一二三| 亚洲精品一线二线三线| 国产高清无密码一区二区三区| 欧美国产一区视频在线观看| 色综合天天综合| 天天色 色综合| 久久这里只有精品首页| av成人动漫在线观看| 亚洲国产精品影院| 久久在线观看免费| 99久久亚洲一区二区三区青草| 亚洲一区中文日韩| 欧美成人女星排名| av午夜精品一区二区三区| 日日噜噜夜夜狠狠视频欧美人| 欧美tk—视频vk| 一本到高清视频免费精品| 石原莉奈一区二区三区在线观看 |