< prev index next >

test/jdk/java/util/logging/Level/CustomLevel.java

Print this page

        

@@ -20,10 +20,12 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
 import java.io.*;
+import java.lang.management.ManagementFactory;
+import java.lang.management.PlatformLoggingMXBean;
 import java.lang.ref.Reference;
 import java.lang.ref.ReferenceQueue;
 import java.lang.ref.WeakReference;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;

@@ -33,13 +35,14 @@
 import java.util.*;
 import java.util.logging.*;
 
 /*
  * @test
- * @bug 8026027 6543126
+ * @bug 8026027 6543126 8187073
+ * @modules java.management
  * @summary Test Level.parse to look up custom levels by name and its
- *          localized name
+ *          localized name, as well as severity.
  *
  * @run main/othervm CustomLevel
  */
 
 public class CustomLevel extends Level {

@@ -71,10 +74,12 @@
     }
 
     public static void main(String[] args) throws Exception {
         setupCustomLevels();
         setUpCustomLevelsOtherLoader();
+        PlatformLoggingMXBean mxbean = ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class);
+        Logger logger = Logger.getLogger("foo.bar");
 
         // Level.parse will return the custom Level instance
         for (Level level : levels) {
             final ResourceBundle rb = getResourceBundle(level);
             String name = level.getName();

@@ -94,11 +99,30 @@
             if (l != level) {
                 throw new RuntimeException("Unexpected level " + l + " "
                     + l.getClass() + " for " + localizedName
                     + " in " + rb.getBaseBundleName());
             }
+            l = Level.parse(String.valueOf(level.intValue()));
+            System.out.println("Level.parse(" + level.intValue() + ") returns " + l);
+            if (l != level) {
+                if (l == null || l.intValue() != level.intValue()) {
+                    throw new RuntimeException("Unexpected level " + l
+                            + (l == null ? "" : (" " + l.getClass()))
+                            + " for " + level.intValue());
+                }
+            }
+            mxbean.setLoggerLevel(logger.getName(), String.valueOf(level.intValue()));
+            Level l2 = logger.getLevel();
+            if (l2 != level) {
+                if (l2 == null || l2.intValue() != level.intValue()) {
+                    throw new RuntimeException("Unexpected level " + l2
+                            + (l2 == null ? "" : (" " + l2.getClass()))
+                            + " for " + level.intValue());
         }
+            }
+        }
+
 
         final long otherLevelCount = levels.stream()
             .filter(CustomLevel::isCustomLoader)
             .count();
 
< prev index next >