test/java/util/logging/TestAppletLoggerContext.java
Print this page
@@ -36,11 +36,11 @@
import sun.misc.JavaAWTAccess;
import sun.misc.SharedSecrets;
/*
* @test
- * @bug 8017174 8010727
+ * @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,49 +430,40 @@
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 are not null.
- // root == LogManager.getLogManager().rootLogger
- // global == Logger.global
+ // 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);
- 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...
+ assertEquals(expected, logger3);
+ assertEquals(expected, logger3b);
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...
+ manager.addLogger(global2);
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
+ expected = (System.getSecurityManager() == null ? global : global2);;
+ assertEquals(logger4, expected);
+ assertEquals(logger4b, expected);
Logger logger5 = manager.getLogger("");
Logger logger5b = manager.getLogger("");
- Logger expectedRoot = (System.getSecurityManager() != null
- ? LogManager.getLogManager().getLogger("")
- : null);
+ Logger expectedRoot = null;
assertEquals(logger5, expectedRoot);
assertEquals(logger5b, expectedRoot);
+ }
}
}
/**
@@ -509,61 +500,57 @@
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 haowever need to check our assumptions...
+ // We however need to check our assumptions...
- // Applet context => root logger and global logger are not null.
- // root == LogManager.getLogManager().rootLogger
- // global == Logger.global
+ // Applet context => root logger and global logger should also be null.
Logger logger5 = manager.getLogger("");
Logger logger5b = manager.getLogger("");
- Logger expectedRoot = (System.getSecurityManager() != null
- ? LogManager.getLogManager().getLogger("")
- : root);
-
- assertNotNull(logger5);
- assertNotNull(logger5b);
+ Logger expectedRoot = (System.getSecurityManager() == null ? root : null);
assertEquals(logger5, expectedRoot);
assertEquals(logger5b, expectedRoot);
+
if (System.getSecurityManager() != null) {
- assertNotEquals(logger5, root);
- assertNotEquals(logger5b, root);
+ 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); // 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...
+ manager.addLogger(global2);
Logger logger6 = manager.getLogger(Logger.GLOBAL_LOGGER_NAME);
Logger logger6b = manager.getLogger(Logger.GLOBAL_LOGGER_NAME);
- Logger expectedGlobal = (System.getSecurityManager() != null
- ? Logger.getGlobal()
- : global);
+ Logger expectedGlobal = (System.getSecurityManager() == null ? global : global2);
+
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
+ 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); // 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...
+ manager.addLogger(root2);
+ expectedRoot = (System.getSecurityManager() == null ? root : root2);
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);
+ assertEquals(logger7, expectedRoot);
+ assertEquals(logger7b, expectedRoot);
+ }
}
}
public static void testParent(Logger logger) {
Logger l = logger;