test/java/util/logging/TestAppletLoggerContext.java

Print this page

        

*** 36,46 **** import sun.misc.JavaAWTAccess; import sun.misc.SharedSecrets; /* * @test ! * @bug 8017174 8010727 * @summary NPE when using Logger.getAnonymousLogger or * LogManager.getLogManager().getLogger * * @run main/othervm -Dtest.security=off TestAppletLoggerContext LoadingApplet * @run main/othervm -Dtest.security=on TestAppletLoggerContext LoadingApplet --- 36,46 ---- import sun.misc.JavaAWTAccess; import sun.misc.SharedSecrets; /* * @test ! * @bug 8017174 8010727 8019945 * @summary NPE when using Logger.getAnonymousLogger or * LogManager.getLogManager().getLogger * * @run main/othervm -Dtest.security=off TestAppletLoggerContext LoadingApplet * @run main/othervm -Dtest.security=on TestAppletLoggerContext LoadingApplet
*** 430,478 **** assertEquals(logger2, global); assertEquals(logger2b, global); assertNull(manager.getLogger("")); assertNull(manager.getLogger("")); Bridge.changeContext(); // this is not a supported configuration: // We are in an applet context with several log managers. // We however need to check our assumptions... ! // Applet context => root logger and global logger are not null. ! // root == LogManager.getLogManager().rootLogger ! // global == Logger.global Logger logger3 = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); Logger logger3b = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); ! assertNotNull(logger3); ! assertNotNull(logger3b); ! Logger expected = (System.getSecurityManager() != null ! ? Logger.getGlobal() ! : global); ! assertEquals(logger3, expected); // in applet context, we will not see ! // the LogManager's custom global logger added above... ! assertEquals(logger3b, expected); // in applet context, we will not see ! // the LogManager's custom global logger added above... Logger global2 = new Bridge.CustomLogger(Logger.GLOBAL_LOGGER_NAME); ! manager.addLogger(global2); // adding a global logger will not work in applet context ! // we will always get back the global logger. ! // this could be considered as a bug... Logger logger4 = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); Logger logger4b = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); assertNotNull(logger4); assertNotNull(logger4b); ! assertEquals(logger4, expected); // adding a global logger will not work in applet context ! assertEquals(logger4b, expected); // adding a global logger will not work in applet context Logger logger5 = manager.getLogger(""); Logger logger5b = manager.getLogger(""); ! Logger expectedRoot = (System.getSecurityManager() != null ! ? LogManager.getLogManager().getLogger("") ! : null); assertEquals(logger5, expectedRoot); assertEquals(logger5b, expectedRoot); } } /** --- 430,469 ---- assertEquals(logger2, global); assertEquals(logger2b, global); assertNull(manager.getLogger("")); assertNull(manager.getLogger("")); + for (int j = 0; j<3; j++) { Bridge.changeContext(); // this is not a supported configuration: // We are in an applet context with several log managers. // We however need to check our assumptions... ! // Applet context => root logger and global logger should also be null. + Logger expected = (System.getSecurityManager() == null ? global : null); Logger logger3 = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); Logger logger3b = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); ! assertEquals(expected, logger3); ! assertEquals(expected, logger3b); Logger global2 = new Bridge.CustomLogger(Logger.GLOBAL_LOGGER_NAME); ! manager.addLogger(global2); Logger logger4 = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); Logger logger4b = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); assertNotNull(logger4); assertNotNull(logger4b); ! expected = (System.getSecurityManager() == null ? global : global2);; ! assertEquals(logger4, expected); ! assertEquals(logger4b, expected); Logger logger5 = manager.getLogger(""); Logger logger5b = manager.getLogger(""); ! Logger expectedRoot = null; assertEquals(logger5, expectedRoot); assertEquals(logger5b, expectedRoot); + } } } /**
*** 509,569 **** assertNotNull(logger4); assertNotNull(logger4b); assertEquals(logger4, root); assertEquals(logger4b, root); Bridge.changeContext(); // this is not a supported configuration: // We are in an applet context with several log managers. ! // We haowever need to check our assumptions... ! // Applet context => root logger and global logger are not null. ! // root == LogManager.getLogManager().rootLogger ! // global == Logger.global Logger logger5 = manager.getLogger(""); Logger logger5b = manager.getLogger(""); ! Logger expectedRoot = (System.getSecurityManager() != null ! ? LogManager.getLogManager().getLogger("") ! : root); ! ! assertNotNull(logger5); ! assertNotNull(logger5b); assertEquals(logger5, expectedRoot); assertEquals(logger5b, expectedRoot); if (System.getSecurityManager() != null) { ! assertNotEquals(logger5, root); ! assertNotEquals(logger5b, root); } Logger global2 = new Bridge.CustomLogger(Logger.GLOBAL_LOGGER_NAME); ! manager.addLogger(global2); // adding a global logger will not work in applet context ! // we will always get back the global logger. ! // this could be considered as a bug... Logger logger6 = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); Logger logger6b = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); ! Logger expectedGlobal = (System.getSecurityManager() != null ! ? Logger.getGlobal() ! : global); assertNotNull(logger6); assertNotNull(logger6b); ! assertEquals(logger6, expectedGlobal); // adding a global logger will not work in applet context ! assertEquals(logger6b, expectedGlobal); // adding a global logger will not work in applet context Logger root2 = new Bridge.CustomLogger(""); ! manager.addLogger(root2); // adding a root logger will not work in applet context ! // we will always get back the default manager's root logger. ! // this could be considered as a bug... Logger logger7 = manager.getLogger(""); Logger logger7b = manager.getLogger(""); assertNotNull(logger7); assertNotNull(logger7b); ! assertEquals(logger7, expectedRoot); // adding a global logger will not work in applet context ! assertEquals(logger7b, expectedRoot); // adding a global logger will not work in applet context ! assertNotEquals(logger7, root2); ! assertNotEquals(logger7b, root2); } } public static void testParent(Logger logger) { Logger l = logger; --- 500,556 ---- assertNotNull(logger4); assertNotNull(logger4b); assertEquals(logger4, root); assertEquals(logger4b, root); + for (int j = 0 ; j < 3 ; j++) { Bridge.changeContext(); // this is not a supported configuration: // We are in an applet context with several log managers. ! // We however need to check our assumptions... ! // Applet context => root logger and global logger should also be null. Logger logger5 = manager.getLogger(""); Logger logger5b = manager.getLogger(""); ! Logger expectedRoot = (System.getSecurityManager() == null ? root : null); assertEquals(logger5, expectedRoot); assertEquals(logger5b, expectedRoot); + if (System.getSecurityManager() != null) { ! assertNull(manager.getLogger(Logger.GLOBAL_LOGGER_NAME)); ! } else { ! assertEquals(global, manager.getLogger(Logger.GLOBAL_LOGGER_NAME)); } Logger global2 = new Bridge.CustomLogger(Logger.GLOBAL_LOGGER_NAME); ! manager.addLogger(global2); Logger logger6 = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); Logger logger6b = manager.getLogger(Logger.GLOBAL_LOGGER_NAME); ! Logger expectedGlobal = (System.getSecurityManager() == null ? global : global2); ! assertNotNull(logger6); assertNotNull(logger6b); ! assertEquals(logger6, expectedGlobal); ! assertEquals(logger6b, expectedGlobal); ! if (System.getSecurityManager() != null) { ! assertNull(manager.getLogger("")); ! } else { ! assertEquals(root, manager.getLogger("")); ! } Logger root2 = new Bridge.CustomLogger(""); ! manager.addLogger(root2); ! expectedRoot = (System.getSecurityManager() == null ? root : root2); Logger logger7 = manager.getLogger(""); Logger logger7b = manager.getLogger(""); assertNotNull(logger7); assertNotNull(logger7b); ! assertEquals(logger7, expectedRoot); ! assertEquals(logger7b, expectedRoot); ! } } } public static void testParent(Logger logger) { Logger l = logger;