public class java.lang.management.ManagementFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.management.ManagementFactory
  super_class: java.lang.Object
{
  public static final java.lang.String CLASS_LOADING_MXBEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=ClassLoading"

  public static final java.lang.String COMPILATION_MXBEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=Compilation"

  public static final java.lang.String MEMORY_MXBEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=Memory"

  public static final java.lang.String OPERATING_SYSTEM_MXBEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=OperatingSystem"

  public static final java.lang.String RUNTIME_MXBEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=Runtime"

  public static final java.lang.String THREAD_MXBEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=Threading"

  public static final java.lang.String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=GarbageCollector"

  public static final java.lang.String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=MemoryManager"

  public static final java.lang.String MEMORY_POOL_MXBEAN_DOMAIN_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang:type=MemoryPool"

  private static javax.management.MBeanServer platformMBeanServer;
    descriptor: Ljavax/management/MBeanServer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String NOTIF_EMITTER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.management.NotificationEmitter"

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ManagementFactory this
         0: .line 237
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.lang.management.ManagementFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ManagementFactory;

  public static java.lang.management.ClassLoadingMXBean getClassLoadingMXBean();
    descriptor: ()Ljava/lang/management/ClassLoadingMXBean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 319
            invokestatic sun.management.ManagementFactoryHelper.getClassLoadingMXBean:()Ljava/lang/management/ClassLoadingMXBean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.management.MemoryMXBean getMemoryMXBean();
    descriptor: ()Ljava/lang/management/MemoryMXBean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 329
            invokestatic sun.management.ManagementFactoryHelper.getMemoryMXBean:()Ljava/lang/management/MemoryMXBean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.management.ThreadMXBean getThreadMXBean();
    descriptor: ()Ljava/lang/management/ThreadMXBean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 339
            invokestatic sun.management.ManagementFactoryHelper.getThreadMXBean:()Ljava/lang/management/ThreadMXBean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.management.RuntimeMXBean getRuntimeMXBean();
    descriptor: ()Ljava/lang/management/RuntimeMXBean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 350
            invokestatic sun.management.ManagementFactoryHelper.getRuntimeMXBean:()Ljava/lang/management/RuntimeMXBean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.management.CompilationMXBean getCompilationMXBean();
    descriptor: ()Ljava/lang/management/CompilationMXBean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 363
            invokestatic sun.management.ManagementFactoryHelper.getCompilationMXBean:()Ljava/lang/management/CompilationMXBean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.management.OperatingSystemMXBean getOperatingSystemMXBean();
    descriptor: ()Ljava/lang/management/OperatingSystemMXBean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 374
            invokestatic sun.management.ManagementFactoryHelper.getOperatingSystemMXBean:()Ljava/lang/management/OperatingSystemMXBean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.util.List<java.lang.management.MemoryPoolMXBean> getMemoryPoolMXBeans();
    descriptor: ()Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 387
            invokestatic sun.management.ManagementFactoryHelper.getMemoryPoolMXBeans:()Ljava/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/List<Ljava/lang/management/MemoryPoolMXBean;>;

  public static java.util.List<java.lang.management.MemoryManagerMXBean> getMemoryManagerMXBeans();
    descriptor: ()Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 400
            invokestatic sun.management.ManagementFactoryHelper.getMemoryManagerMXBeans:()Ljava/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/List<Ljava/lang/management/MemoryManagerMXBean;>;

  public static java.util.List<java.lang.management.GarbageCollectorMXBean> getGarbageCollectorMXBeans();
    descriptor: ()Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 416
            invokestatic sun.management.ManagementFactoryHelper.getGarbageCollectorMXBeans:()Ljava/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/List<Ljava/lang/management/GarbageCollectorMXBean;>;

  public static synchronized javax.management.MBeanServer getPlatformMBeanServer();
    descriptor: ()Ljavax/management/MBeanServer;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=8, args_size=0
         0: .line 462
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 0 /* sm */
        start local 0 // java.lang.SecurityManager sm
         1: .line 463
            aload 0 /* sm */
            ifnull 4
         2: .line 464
            new javax.management.MBeanServerPermission
            dup
            ldc "createMBeanServer"
            invokespecial javax.management.MBeanServerPermission.<init>:(Ljava/lang/String;)V
            astore 1 /* perm */
        start local 1 // java.security.Permission perm
         3: .line 465
            aload 0 /* sm */
            aload 1 /* perm */
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 1 // java.security.Permission perm
         4: .line 468
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            getstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
            ifnonnull 28
         5: .line 469
            invokestatic javax.management.MBeanServerFactory.createMBeanServer:()Ljavax/management/MBeanServer;
            putstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
         6: .line 470
            invokestatic java.lang.management.PlatformComponent.values:()[Ljava/lang/management/PlatformComponent;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 16
      StackMap locals: java.lang.SecurityManager top int int java.lang.management.PlatformComponent[]
      StackMap stack:
         7: aload 4
            iload 2
            aaload
            astore 1 /* pc */
        start local 1 // java.lang.management.PlatformComponent pc
         8: .line 472
            aload 1 /* pc */
            aload 1 /* pc */
            invokevirtual java.lang.management.PlatformComponent.getMXBeanInterface:()Ljava/lang/Class;
            invokevirtual java.lang.management.PlatformComponent.getMXBeans:(Ljava/lang/Class;)Ljava/util/List;
         9: .line 471
            astore 5 /* list */
        start local 5 // java.util.List list
        10: .line 473
            aload 5 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 14
      StackMap locals: java.lang.SecurityManager java.lang.management.PlatformComponent int int java.lang.management.PlatformComponent[] java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.management.PlatformManagedObject
            astore 6 /* o */
        start local 6 // java.lang.management.PlatformManagedObject o
        12: .line 483
            getstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
            aload 6 /* o */
            invokeinterface java.lang.management.PlatformManagedObject.getObjectName:()Ljavax/management/ObjectName;
            invokeinterface javax.management.MBeanServer.isRegistered:(Ljavax/management/ObjectName;)Z
            ifne 14
        13: .line 484
            getstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
            aload 6 /* o */
            invokestatic java.lang.management.ManagementFactory.addMXBean:(Ljavax/management/MBeanServer;Ljava/lang/management/PlatformManagedObject;)V
        end local 6 // java.lang.management.PlatformManagedObject o
        14: .line 473
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 5 // java.util.List list
        end local 1 // java.lang.management.PlatformComponent pc
        15: .line 470
            iinc 2 1
      StackMap locals: java.lang.SecurityManager top int int java.lang.management.PlatformComponent[]
      StackMap stack:
        16: iload 2
            iload 3
            if_icmplt 7
        17: .line 489
            invokestatic sun.management.ManagementFactoryHelper.getPlatformDynamicMBeans:()Ljava/util/HashMap;
        18: .line 488
            astore 1 /* dynmbeans */
        start local 1 // java.util.HashMap dynmbeans
        19: .line 490
            aload 1 /* dynmbeans */
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 22
      StackMap locals: java.lang.SecurityManager java.util.HashMap top java.util.Iterator
      StackMap stack:
        20: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* e */
        start local 2 // java.util.Map$Entry e
        21: .line 491
            getstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast javax.management.DynamicMBean
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            invokestatic java.lang.management.ManagementFactory.addDynamicMBean:(Ljavax/management/MBeanServer;Ljavax/management/DynamicMBean;Ljavax/management/ObjectName;)V
        end local 2 // java.util.Map$Entry e
        22: .line 490
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 494
            invokestatic sun.management.ExtendedPlatformComponent.getMXBeans:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 27
      StackMap locals:
      StackMap stack:
        24: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.management.PlatformManagedObject
            astore 2 /* o */
        start local 2 // java.lang.management.PlatformManagedObject o
        25: .line 495
            getstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
            aload 2 /* o */
            invokeinterface java.lang.management.PlatformManagedObject.getObjectName:()Ljavax/management/ObjectName;
            invokeinterface javax.management.MBeanServer.isRegistered:(Ljavax/management/ObjectName;)Z
            ifne 27
        26: .line 496
            getstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
            aload 2 /* o */
            invokestatic java.lang.management.ManagementFactory.addMXBean:(Ljavax/management/MBeanServer;Ljava/lang/management/PlatformManagedObject;)V
        end local 2 // java.lang.management.PlatformManagedObject o
        27: .line 493
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        end local 1 // java.util.HashMap dynmbeans
        28: .line 500
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            getstatic java.lang.management.ManagementFactory.platformMBeanServer:Ljavax/management/MBeanServer;
            areturn
        end local 0 // java.lang.SecurityManager sm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            1   29     0         sm  Ljava/lang/SecurityManager;
            3    4     1       perm  Ljava/security/Permission;
            8   15     1         pc  Ljava/lang/management/PlatformComponent;
           10   15     5       list  Ljava/util/List<+Ljava/lang/management/PlatformManagedObject;>;
           12   14     6          o  Ljava/lang/management/PlatformManagedObject;
           19   28     1  dynmbeans  Ljava/util/HashMap<Ljavax/management/ObjectName;Ljavax/management/DynamicMBean;>;
           21   22     2          e  Ljava/util/Map$Entry<Ljavax/management/ObjectName;Ljavax/management/DynamicMBean;>;
           25   27     2          o  Ljava/lang/management/PlatformManagedObject;

  public static <T> T newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>);
    descriptor: (Ljavax/management/MBeanServerConnection;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // javax.management.MBeanServerConnection connection
        start local 1 // java.lang.String mxbeanName
        start local 2 // java.lang.Class mxbeanInterface
         0: .line 601
            aload 2 /* mxbeanInterface */
            astore 3 /* cls */
        start local 3 // java.lang.Class cls
         1: .line 603
            new java.lang.management.ManagementFactory$1
            dup
            aload 3 /* cls */
            invokespecial java.lang.management.ManagementFactory$1.<init>:(Ljava/lang/Class;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
         2: .line 602
            astore 4 /* loader */
        start local 4 // java.lang.ClassLoader loader
         3: .line 608
            aload 4 /* loader */
            invokestatic sun.misc.VM.isSystemDomainLoader:(Ljava/lang/ClassLoader;)Z
            ifne 7
         4: .line 609
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* mxbeanName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 610
            ldc " is not a platform MXBean"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 609
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 614
      StackMap locals: java.lang.Class java.lang.ClassLoader
      StackMap stack:
            new javax.management.ObjectName
            dup
            aload 1 /* mxbeanName */
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 5 /* objName */
        start local 5 // javax.management.ObjectName objName
         8: .line 616
            aload 2 /* mxbeanInterface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 6 /* intfName */
        start local 6 // java.lang.String intfName
         9: .line 617
            aload 0 /* connection */
            aload 5 /* objName */
            aload 6 /* intfName */
            invokeinterface javax.management.MBeanServerConnection.isInstanceOf:(Ljavax/management/ObjectName;Ljava/lang/String;)Z
            ifne 13
        10: .line 618
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* mxbeanName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 619
            ldc " is not an instance of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* mxbeanInterface */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 618
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 624
      StackMap locals: javax.management.ObjectName java.lang.String
      StackMap stack:
            aload 0 /* connection */
            aload 5 /* objName */
            ldc "javax.management.NotificationEmitter"
            invokeinterface javax.management.MBeanServerConnection.isInstanceOf:(Ljavax/management/ObjectName;Ljava/lang/String;)Z
            istore 7 /* emitter */
        start local 7 // boolean emitter
        14: .line 627
            aload 0 /* connection */
            aload 5 /* objName */
            aload 2 /* mxbeanInterface */
        15: .line 628
            iload 7 /* emitter */
        16: .line 627
            invokestatic javax.management.JMX.newMXBeanProxy:(Ljavax/management/MBeanServerConnection;Ljavax/management/ObjectName;Ljava/lang/Class;Z)Ljava/lang/Object;
        17: areturn
        end local 7 // boolean emitter
        end local 6 // java.lang.String intfName
        end local 5 // javax.management.ObjectName objName
        18: .line 629
      StackMap locals: javax.management.MBeanServerConnection java.lang.String java.lang.Class java.lang.Class java.lang.ClassLoader
      StackMap stack: javax.management.OperationsException
            astore 5 /* e */
        start local 5 // javax.management.OperationsException e
        19: .line 630
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // javax.management.OperationsException e
        end local 4 // java.lang.ClassLoader loader
        end local 3 // java.lang.Class cls
        end local 2 // java.lang.Class mxbeanInterface
        end local 1 // java.lang.String mxbeanName
        end local 0 // javax.management.MBeanServerConnection connection
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0       connection  Ljavax/management/MBeanServerConnection;
            0   20     1       mxbeanName  Ljava/lang/String;
            0   20     2  mxbeanInterface  Ljava/lang/Class<TT;>;
            1   20     3              cls  Ljava/lang/Class<*>;
            3   20     4           loader  Ljava/lang/ClassLoader;
            8   18     5          objName  Ljavax/management/ObjectName;
            9   18     6         intfName  Ljava/lang/String;
           14   18     7          emitter  Z
           19   20     5                e  Ljavax/management/OperationsException;
      Exception table:
        from    to  target  type
           7    17      18  Class javax.management.InstanceNotFoundException
           7    17      18  Class javax.management.MalformedObjectNameException
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljavax/management/MBeanServerConnection;Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      connection       
      mxbeanName       
      mxbeanInterface  

  public static <T extends java.lang.management.PlatformManagedObject> T getPlatformMXBean(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.Class mxbeanInterface
         0: .line 664
            aload 0 /* mxbeanInterface */
            invokestatic java.lang.management.PlatformComponent.getPlatformComponent:(Ljava/lang/Class;)Ljava/lang/management/PlatformComponent;
            astore 1 /* pc */
        start local 1 // java.lang.management.PlatformComponent pc
         1: .line 665
            aload 1 /* pc */
            ifnonnull 8
         2: .line 666
            aload 0 /* mxbeanInterface */
            invokestatic sun.management.ExtendedPlatformComponent.getMXBean:(Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
            astore 2 /* mbean */
        start local 2 // java.lang.management.PlatformManagedObject mbean
         3: .line 667
            aload 2 /* mbean */
            ifnull 5
         4: .line 668
            aload 2 /* mbean */
            areturn
         5: .line 670
      StackMap locals: java.lang.management.PlatformComponent java.lang.management.PlatformManagedObject
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* mxbeanInterface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 671
            ldc " is not a platform management interface"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 670
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.management.PlatformManagedObject mbean
         8: .line 673
      StackMap locals:
      StackMap stack:
            aload 1 /* pc */
            invokevirtual java.lang.management.PlatformComponent.isSingleton:()Z
            ifne 12
         9: .line 674
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* mxbeanInterface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 675
            ldc " can have zero or more than one instances"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 674
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 677
      StackMap locals:
      StackMap stack:
            aload 1 /* pc */
            aload 0 /* mxbeanInterface */
            invokevirtual java.lang.management.PlatformComponent.getSingletonMXBean:(Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
            areturn
        end local 1 // java.lang.management.PlatformComponent pc
        end local 0 // java.lang.Class mxbeanInterface
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0  mxbeanInterface  Ljava/lang/Class<TT;>;
            1   13     1               pc  Ljava/lang/management/PlatformComponent;
            3    8     2            mbean  TT;
    Signature: <T::Ljava/lang/management/PlatformManagedObject;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      mxbeanInterface  

  public static <T extends java.lang.management.PlatformManagedObject> java.util.List<T> getPlatformMXBeans(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.Class mxbeanInterface
         0: .line 704
            aload 0 /* mxbeanInterface */
            invokestatic java.lang.management.PlatformComponent.getPlatformComponent:(Ljava/lang/Class;)Ljava/lang/management/PlatformComponent;
            astore 1 /* pc */
        start local 1 // java.lang.management.PlatformComponent pc
         1: .line 705
            aload 1 /* pc */
            ifnonnull 8
         2: .line 706
            aload 0 /* mxbeanInterface */
            invokestatic sun.management.ExtendedPlatformComponent.getMXBean:(Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
            astore 2 /* mbean */
        start local 2 // java.lang.management.PlatformManagedObject mbean
         3: .line 707
            aload 2 /* mbean */
            ifnull 5
         4: .line 708
            aload 2 /* mbean */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            areturn
         5: .line 710
      StackMap locals: java.lang.management.PlatformComponent java.lang.management.PlatformManagedObject
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* mxbeanInterface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 711
            ldc " is not a platform management interface"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 710
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.management.PlatformManagedObject mbean
         8: .line 713
      StackMap locals:
      StackMap stack:
            aload 1 /* pc */
            aload 0 /* mxbeanInterface */
            invokevirtual java.lang.management.PlatformComponent.getMXBeans:(Ljava/lang/Class;)Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 1 // java.lang.management.PlatformComponent pc
        end local 0 // java.lang.Class mxbeanInterface
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0  mxbeanInterface  Ljava/lang/Class<TT;>;
            1    9     1               pc  Ljava/lang/management/PlatformComponent;
            3    8     2            mbean  TT;
    Signature: <T::Ljava/lang/management/PlatformManagedObject;>(Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
                 Name  Flags
      mxbeanInterface  

  public static <T extends java.lang.management.PlatformManagedObject> T getPlatformMXBean(javax.management.MBeanServerConnection, java.lang.Class<T>);
    descriptor: (Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // javax.management.MBeanServerConnection connection
        start local 1 // java.lang.Class mxbeanInterface
         0: .line 756
            aload 1 /* mxbeanInterface */
            invokestatic java.lang.management.PlatformComponent.getPlatformComponent:(Ljava/lang/Class;)Ljava/lang/management/PlatformComponent;
            astore 2 /* pc */
        start local 2 // java.lang.management.PlatformComponent pc
         1: .line 757
            aload 2 /* pc */
            ifnonnull 12
         2: .line 758
            aload 1 /* mxbeanInterface */
            invokestatic sun.management.ExtendedPlatformComponent.getMXBean:(Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
            astore 3 /* mbean */
        start local 3 // java.lang.management.PlatformManagedObject mbean
         3: .line 759
            aload 3 /* mbean */
            ifnull 9
         4: .line 760
            aload 3 /* mbean */
            invokeinterface java.lang.management.PlatformManagedObject.getObjectName:()Ljavax/management/ObjectName;
            astore 4 /* on */
        start local 4 // javax.management.ObjectName on
         5: .line 761
            aload 0 /* connection */
         6: .line 762
            aload 4 /* on */
            invokevirtual javax.management.ObjectName.getCanonicalName:()Ljava/lang/String;
         7: .line 763
            aload 1 /* mxbeanInterface */
         8: .line 761
            invokestatic java.lang.management.ManagementFactory.newPlatformMXBeanProxy:(Ljavax/management/MBeanServerConnection;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.management.PlatformManagedObject
            areturn
        end local 4 // javax.management.ObjectName on
         9: .line 765
      StackMap locals: java.lang.management.PlatformComponent java.lang.management.PlatformManagedObject
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* mxbeanInterface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 766
            ldc " is not a platform management interface"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 765
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.management.PlatformManagedObject mbean
        12: .line 768
      StackMap locals:
      StackMap stack:
            aload 2 /* pc */
            invokevirtual java.lang.management.PlatformComponent.isSingleton:()Z
            ifne 16
        13: .line 769
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* mxbeanInterface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 770
            ldc " can have zero or more than one instances"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 769
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 771
      StackMap locals:
      StackMap stack:
            aload 2 /* pc */
            aload 0 /* connection */
            aload 1 /* mxbeanInterface */
            invokevirtual java.lang.management.PlatformComponent.getSingletonMXBean:(Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
            areturn
        end local 2 // java.lang.management.PlatformComponent pc
        end local 1 // java.lang.Class mxbeanInterface
        end local 0 // javax.management.MBeanServerConnection connection
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0       connection  Ljavax/management/MBeanServerConnection;
            0   17     1  mxbeanInterface  Ljava/lang/Class<TT;>;
            1   17     2               pc  Ljava/lang/management/PlatformComponent;
            3   12     3            mbean  TT;
            5    9     4               on  Ljavax/management/ObjectName;
    Exceptions:
      throws java.io.IOException
    Signature: <T::Ljava/lang/management/PlatformManagedObject;>(Ljavax/management/MBeanServerConnection;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      connection       
      mxbeanInterface  

  public static <T extends java.lang.management.PlatformManagedObject> java.util.List<T> getPlatformMXBeans(javax.management.MBeanServerConnection, java.lang.Class<T>);
    descriptor: (Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // javax.management.MBeanServerConnection connection
        start local 1 // java.lang.Class mxbeanInterface
         0: .line 807
            aload 1 /* mxbeanInterface */
            invokestatic java.lang.management.PlatformComponent.getPlatformComponent:(Ljava/lang/Class;)Ljava/lang/management/PlatformComponent;
            astore 2 /* pc */
        start local 2 // java.lang.management.PlatformComponent pc
         1: .line 808
            aload 2 /* pc */
            ifnonnull 12
         2: .line 809
            aload 1 /* mxbeanInterface */
            invokestatic sun.management.ExtendedPlatformComponent.getMXBean:(Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
            astore 3 /* mbean */
        start local 3 // java.lang.management.PlatformManagedObject mbean
         3: .line 810
            aload 3 /* mbean */
            ifnull 9
         4: .line 811
            aload 3 /* mbean */
            invokeinterface java.lang.management.PlatformManagedObject.getObjectName:()Ljavax/management/ObjectName;
            astore 4 /* on */
        start local 4 // javax.management.ObjectName on
         5: .line 812
            aload 0 /* connection */
         6: .line 813
            aload 4 /* on */
            invokevirtual javax.management.ObjectName.getCanonicalName:()Ljava/lang/String;
            aload 1 /* mxbeanInterface */
         7: .line 812
            invokestatic java.lang.management.ManagementFactory.newPlatformMXBeanProxy:(Ljavax/management/MBeanServerConnection;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.management.PlatformManagedObject
            astore 5 /* proxy */
        start local 5 // java.lang.management.PlatformManagedObject proxy
         8: .line 814
            aload 5 /* proxy */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 5 // java.lang.management.PlatformManagedObject proxy
        end local 4 // javax.management.ObjectName on
         9: .line 816
      StackMap locals: java.lang.management.PlatformComponent java.lang.management.PlatformManagedObject
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* mxbeanInterface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 817
            ldc " is not a platform management interface"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 816
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.management.PlatformManagedObject mbean
        12: .line 819
      StackMap locals:
      StackMap stack:
            aload 2 /* pc */
            aload 0 /* connection */
            aload 1 /* mxbeanInterface */
            invokevirtual java.lang.management.PlatformComponent.getMXBeans:(Ljavax/management/MBeanServerConnection;Ljava/lang/Class;)Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 2 // java.lang.management.PlatformComponent pc
        end local 1 // java.lang.Class mxbeanInterface
        end local 0 // javax.management.MBeanServerConnection connection
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0       connection  Ljavax/management/MBeanServerConnection;
            0   13     1  mxbeanInterface  Ljava/lang/Class<TT;>;
            1   13     2               pc  Ljava/lang/management/PlatformComponent;
            3   12     3            mbean  TT;
            5    9     4               on  Ljavax/management/ObjectName;
            8    9     5            proxy  TT;
    Exceptions:
      throws java.io.IOException
    Signature: <T::Ljava/lang/management/PlatformManagedObject;>(Ljavax/management/MBeanServerConnection;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
                 Name  Flags
      connection       
      mxbeanInterface  

  public static java.util.Set<java.lang.Class<? extends java.lang.management.PlatformManagedObject>> getPlatformManagementInterfaces();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=0
         0: .line 839
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
         1: .line 838
            astore 0 /* result */
        start local 0 // java.util.Set result
         2: .line 840
            invokestatic java.lang.management.PlatformComponent.values:()[Ljava/lang/management/PlatformComponent;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 6
      StackMap locals: java.util.Set top int int java.lang.management.PlatformComponent[]
      StackMap stack:
         3: aload 4
            iload 2
            aaload
            astore 1 /* component */
        start local 1 // java.lang.management.PlatformComponent component
         4: .line 841
            aload 0 /* result */
            aload 1 /* component */
            invokevirtual java.lang.management.PlatformComponent.getMXBeanInterface:()Ljava/lang/Class;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 1 // java.lang.management.PlatformComponent component
         5: .line 840
            iinc 2 1
      StackMap locals:
      StackMap stack:
         6: iload 2
            iload 3
            if_icmplt 3
         7: .line 843
            aload 0 /* result */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            areturn
        end local 0 // java.util.Set result
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            2    8     0     result  Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/management/PlatformManagedObject;>;>;
            4    5     1  component  Ljava/lang/management/PlatformComponent;
    Signature: ()Ljava/util/Set<Ljava/lang/Class<+Ljava/lang/management/PlatformManagedObject;>;>;

  private static void addMXBean(javax.management.MBeanServer, java.lang.management.PlatformManagedObject);
    descriptor: (Ljavax/management/MBeanServer;Ljava/lang/management/PlatformManagedObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.management.MBeanServer mbs
        start local 1 // java.lang.management.PlatformManagedObject pmo
         0: .line 855
            new java.lang.management.ManagementFactory$2
            dup
            aload 1 /* pmo */
            aload 0 /* mbs */
            invokespecial java.lang.management.ManagementFactory$2.<init>:(Ljava/lang/management/PlatformManagedObject;Ljavax/management/MBeanServer;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         1: .line 872
            goto 4
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
         2: astore 2 /* e */
        start local 2 // java.security.PrivilegedActionException e
         3: .line 873
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.PrivilegedActionException e
         4: .line 875
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.management.PlatformManagedObject pmo
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   mbs  Ljavax/management/MBeanServer;
            0    5     1   pmo  Ljava/lang/management/PlatformManagedObject;
            3    4     2     e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.PrivilegedActionException
    MethodParameters:
      Name  Flags
      mbs   final
      pmo   final

  private static void addDynamicMBean(javax.management.MBeanServer, javax.management.DynamicMBean, javax.management.ObjectName);
    descriptor: (Ljavax/management/MBeanServer;Ljavax/management/DynamicMBean;Ljavax/management/ObjectName;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // javax.management.MBeanServer mbs
        start local 1 // javax.management.DynamicMBean dmbean
        start local 2 // javax.management.ObjectName on
         0: .line 884
            new java.lang.management.ManagementFactory$3
            dup
            aload 0 /* mbs */
            aload 1 /* dmbean */
            aload 2 /* on */
            invokespecial java.lang.management.ManagementFactory$3.<init>:(Ljavax/management/MBeanServer;Ljavax/management/DynamicMBean;Ljavax/management/ObjectName;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         1: .line 893
            goto 4
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
         2: astore 3 /* e */
        start local 3 // java.security.PrivilegedActionException e
         3: .line 894
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.security.PrivilegedActionException e
         4: .line 896
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.management.ObjectName on
        end local 1 // javax.management.DynamicMBean dmbean
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     mbs  Ljavax/management/MBeanServer;
            0    5     1  dmbean  Ljavax/management/DynamicMBean;
            0    5     2      on  Ljavax/management/ObjectName;
            3    4     3       e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.PrivilegedActionException
    MethodParameters:
        Name  Flags
      mbs     final
      dmbean  final
      on      final
}
SourceFile: "ManagementFactory.java"
NestMembers:
  java.lang.management.ManagementFactory$1  java.lang.management.ManagementFactory$2  java.lang.management.ManagementFactory$3
InnerClasses:
  java.lang.management.ManagementFactory$1
  java.lang.management.ManagementFactory$2
  java.lang.management.ManagementFactory$3
  public abstract Entry = java.util.Map$Entry of java.util.Map