From bf2e0ffb6b3b269c571669b72bc461088af3aab9 Mon Sep 17 00:00:00 2001 From: mchung Date: Wed, 20 Mar 2013 09:50:07 -0700 Subject: [PATCH] 8006104: Improve tests to test ".useParentHandlers" property set in the logging configuration Reviewed-by: alanb --- test/java/util/logging/CustomLogManager.java | 38 +++++++++++++++++-- .../util/logging/CustomLogManagerTest.java | 2 +- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/test/java/util/logging/CustomLogManager.java b/test/java/util/logging/CustomLogManager.java index 9542e54ec..459844942 100644 --- a/test/java/util/logging/CustomLogManager.java +++ b/test/java/util/logging/CustomLogManager.java @@ -43,6 +43,20 @@ public class CustomLogManager extends LogManager { INSTANCE = this; } + private boolean useParentHandlers(String loggerName) { + String s = props.getProperty(loggerName + ".useParentHandlers"); + if (s == null) + return true; // default is true + + s = s.toLowerCase(); + if (s.equals("true") || s.equals("1")) { + return true; + } else if (s.equals("false") || s.equals("0")) { + return false; + } + return true; + } + public synchronized boolean addLogger(Logger logger) { String name = logger.getName(); if (namedLoggers.containsKey(name)) { @@ -57,6 +71,9 @@ public class CustomLogManager extends LogManager { if (props.get(name + ".handlers") != null && logger.getHandlers().length == 0) { logger.addHandler(new CustomHandler()); } + if (!useParentHandlers(name)) { + logger.setUseParentHandlers(false); + } // add parent loggers int ix = 1; for (;;) { @@ -72,7 +89,10 @@ public class CustomLogManager extends LogManager { // // The test doesn't set the parent for simplicity. if (!namedLoggers.containsKey(pname)) { - Logger.getLogger(pname); + Logger parent = Logger.getLogger(pname); + if (!useParentHandlers(pname)) { + parent.setUseParentHandlers(false); + } } } ix = ix2 + 1; @@ -110,14 +130,16 @@ public class CustomLogManager extends LogManager { props.put("CustomLogManager$CustomHandler.level", "WARNING"); props.put(".handlers", "CustomLogManager$CustomHandler"); props.put("org.foo.bar.level", "SEVERE"); + props.put("org.foo.bar.useParentHandlers", "true"); props.put("org.foo.handlers", "CustomLogManager$CustomHandler"); + props.put("org.foo.useParentHandlers", "false"); props.put("org.openjdk.level", "SEVERE"); props.put("org.openjdk.handlers", "CustomLogManager$CustomHandler"); props.put("org.openjdk.core.level", "INFO"); + props.put("org.openjdk.core.useParentHandlers", "false"); return props; } - public static void checkLogger(String name) { checkLogger(name, null); } @@ -127,10 +149,11 @@ public class CustomLogManager extends LogManager { if (logger == null) { throw new RuntimeException("Logger \"" + name + "\" not exist"); } - System.out.format("Logger \"%s\" level=%s handlers=%s resourcebundle=%s%n", + System.out.format("Logger \"%s\" level=%s handlers=%s resourcebundle=%s useParentHandlers=%s%n", name, logger.getLevel(), Arrays.toString(logger.getHandlers()), - logger.getResourceBundleName()); + logger.getResourceBundleName(), + logger.getUseParentHandlers()); String rb = logger.getResourceBundleName(); if (rb != resourceBundleName && (rb == null || rb.equals(resourceBundleName))) { throw new RuntimeException("Logger \"" + name + @@ -150,6 +173,13 @@ public class CustomLogManager extends LogManager { throw new RuntimeException("Logger \"" + name + "\" unexpected handler: " + Arrays.toString(handlers)); } + + String s = INSTANCE.getProperty(name + ".useParentHandlers"); + boolean uph = (s != null && s.equals("false")) ? false : true; + if (logger.getUseParentHandlers() != uph) { + throw new RuntimeException("Logger \"" + name + "\" unexpected useParentHandlers: " + + logger.getUseParentHandlers()); + } checkParents(name); } diff --git a/test/java/util/logging/CustomLogManagerTest.java b/test/java/util/logging/CustomLogManagerTest.java index 2fa89a9a4..b8f0bfa7f 100644 --- a/test/java/util/logging/CustomLogManagerTest.java +++ b/test/java/util/logging/CustomLogManagerTest.java @@ -29,7 +29,7 @@ import sun.util.logging.PlatformLogger; /* * @test - * @bug 8005615 + * @bug 8005615 8006104 * @summary Add loggers to custom log manager * * @compile -XDignore.symbol.file CustomLogManagerTest.java CustomLogManager.java -- GitLab