2222 */
2323
2424import java .io .*;
25+ import java .lang .management .ManagementFactory ;
26+ import java .lang .management .PlatformLoggingMXBean ;
2527import java .lang .ref .Reference ;
2628import java .lang .ref .ReferenceQueue ;
2729import java .lang .ref .WeakReference ;
3537
3638/*
3739 * @test
38- * @bug 8026027 6543126
40+ * @bug 8026027 6543126 8187073
41+ * @modules java.logging
42+ * java.management
3943 * @summary Test Level.parse to look up custom levels by name and its
40- * localized name
44+ * localized name, as well as severity.
4145 *
4246 * @run main/othervm CustomLevel
4347 */
@@ -73,6 +77,8 @@ public String toString() {
7377 public static void main (String [] args ) throws Exception {
7478 setupCustomLevels ();
7579 setUpCustomLevelsOtherLoader ();
80+ PlatformLoggingMXBean mxbean = ManagementFactory .getPlatformMXBean (PlatformLoggingMXBean .class );
81+ Logger logger = Logger .getLogger ("foo.bar" );
7682
7783 // Level.parse will return the custom Level instance
7884 for (Level level : levels ) {
@@ -96,8 +102,27 @@ public static void main(String[] args) throws Exception {
96102 + l .getClass () + " for " + localizedName
97103 + " in " + rb .getBaseBundleName ());
98104 }
105+ l = Level .parse (String .valueOf (level .intValue ()));
106+ System .out .println ("Level.parse(" + level .intValue () + ") returns " + l );
107+ if (l != level ) {
108+ if (l == null || l .intValue () != level .intValue ()) {
109+ throw new RuntimeException ("Unexpected level " + l
110+ + (l == null ? "" : (" " + l .getClass ()))
111+ + " for " + level .intValue ());
112+ }
113+ }
114+ mxbean .setLoggerLevel (logger .getName (), String .valueOf (level .intValue ()));
115+ Level l2 = logger .getLevel ();
116+ if (l2 != level ) {
117+ if (l2 == null || l2 .intValue () != level .intValue ()) {
118+ throw new RuntimeException ("Unexpected level " + l2
119+ + (l2 == null ? "" : (" " + l2 .getClass ()))
120+ + " for " + level .intValue ());
121+ }
122+ }
99123 }
100124
125+
101126 final long otherLevelCount = levels .stream ()
102127 .filter (CustomLevel ::isCustomLoader )
103128 .count ();
0 commit comments