public final class org.apache.logging.log4j.core.jmx.Server
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.logging.log4j.core.jmx.Server
  super_class: java.lang.Object
{
  private static final java.lang.String CONTEXT_NAME_ALL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "*"

  public static final java.lang.String DOMAIN;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.logging.log4j2"

  private static final java.lang.String PROPERTY_DISABLE_JMX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "log4j2.disable.jmx"

  private static final java.lang.String PROPERTY_ASYNC_NOTIF;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "log4j2.jmx.notify.async"

  private static final java.lang.String THREAD_NAME_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jmx.notif"

  private static final org.apache.logging.log4j.status.StatusLogger LOGGER;
    descriptor: Lorg/apache/logging/log4j/status/StatusLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.util.concurrent.Executor executor;
    descriptor: Ljava/util/concurrent/Executor;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 65
            invokestatic org.apache.logging.log4j.status.StatusLogger.getLogger:()Lorg/apache/logging/log4j/status/StatusLogger;
            putstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
         1: .line 66
            invokestatic org.apache.logging.log4j.core.jmx.Server.isJmxDisabled:()Z
            ifeq 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: invokestatic org.apache.logging.log4j.core.jmx.Server.createExecutor:()Ljava/util/concurrent/ExecutorService;
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutorService
         3: putstatic org.apache.logging.log4j.core.jmx.Server.executor:Ljava/util/concurrent/Executor;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.jmx.Server this
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 69
            return
        end local 0 // org.apache.logging.log4j.core.jmx.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/logging/log4j/core/jmx/Server;

  private static java.util.concurrent.ExecutorService createExecutor();
    descriptor: ()Ljava/util/concurrent/ExecutorService;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 79
            getstatic org.apache.logging.log4j.core.util.Constants.IS_WEB_APP:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 0 /* defaultAsync */
        start local 0 // boolean defaultAsync
         3: .line 80
            invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
            ldc "log4j2.jmx.notify.async"
            iload 0 /* defaultAsync */
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;Z)Z
            istore 1 /* async */
        start local 1 // boolean async
         4: .line 81
            iload 1 /* async */
            ifeq 5
            iconst_1
            ldc "jmx.notif"
            invokestatic org.apache.logging.log4j.core.util.Log4jThreadFactory.createDaemonThreadFactory:(Ljava/lang/String;)Lorg/apache/logging/log4j/core/util/Log4jThreadFactory;
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            goto 6
         5: .line 82
      StackMap locals: int int
      StackMap stack:
            aconst_null
         6: .line 81
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutorService
            areturn
        end local 1 // boolean async
        end local 0 // boolean defaultAsync
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            3    7     0  defaultAsync  Z
            4    7     1         async  Z

  public static java.lang.String escape(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String name
         0: .line 93
            new java.lang.StringBuilder
            dup
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_2
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 94
            iconst_0
            istore 2 /* needsQuotes */
        start local 2 // boolean needsQuotes
         2: .line 95
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 17
         4: .line 96
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 0 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         5: .line 97
            iload 4 /* c */
            lookupswitch { // 9
                   10: 12
                   13: 11
                   34: 6
                   42: 6
                   44: 9
                   58: 9
                   61: 9
                   63: 6
                   92: 6
              default: 15
          }
         6: .line 103
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 104
            iconst_1
            istore 2 /* needsQuotes */
         8: .line 105
            goto 15
         9: .line 110
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* needsQuotes */
        10: .line 111
            goto 15
        11: .line 114
      StackMap locals:
      StackMap stack:
            goto 16
        12: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "\\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 118
            iconst_1
            istore 2 /* needsQuotes */
        14: .line 119
            goto 16
        15: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // char c
        16: .line 95
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* i */
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
        end local 3 // int i
        18: .line 123
            iload 2 /* needsQuotes */
            ifeq 21
        19: .line 124
            aload 1 /* sb */
            iconst_0
            bipush 34
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
        20: .line 125
            aload 1 /* sb */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        21: .line 127
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // boolean needsQuotes
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0         name  Ljava/lang/String;
            1   22     1           sb  Ljava/lang/StringBuilder;
            2   22     2  needsQuotes  Z
            3   18     3            i  I
            5   16     4            c  C
    MethodParameters:
      Name  Flags
      name  final

  private static boolean isJmxDisabled();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 131
            invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
            ldc "log4j2.disable.jmx"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void reregisterMBeansAfterReconfigure();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 136
            invokestatic org.apache.logging.log4j.core.jmx.Server.isJmxDisabled:()Z
            ifeq 3
         1: .line 137
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "JMX disabled for Log4j2. Not registering MBeans."
            invokevirtual org.apache.logging.log4j.status.StatusLogger.debug:(Ljava/lang/String;)V
         2: .line 138
            return
         3: .line 140
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.management.ManagementFactory.getPlatformMBeanServer:()Ljavax/management/MBeanServer;
            astore 0 /* mbs */
        start local 0 // javax.management.MBeanServer mbs
         4: .line 141
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure:(Ljavax/management/MBeanServer;)V
         5: .line 142
            return
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    6     0   mbs  Ljavax/management/MBeanServer;

  public static void reregisterMBeansAfterReconfigure(javax.management.MBeanServer);
    descriptor: (Ljavax/management/MBeanServer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=1
        start local 0 // javax.management.MBeanServer mbs
         0: .line 145
            invokestatic org.apache.logging.log4j.core.jmx.Server.isJmxDisabled:()Z
            ifeq 3
         1: .line 146
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "JMX disabled for Log4j2. Not registering MBeans."
            invokevirtual org.apache.logging.log4j.status.StatusLogger.debug:(Ljava/lang/String;)V
         2: .line 147
            return
         3: .line 153
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.logging.log4j.core.jmx.Server.getContextSelector:()Lorg/apache/logging/log4j/core/selector/ContextSelector;
            astore 1 /* selector */
        start local 1 // org.apache.logging.log4j.core.selector.ContextSelector selector
         4: .line 154
            aload 1 /* selector */
            ifnonnull 7
         5: .line 155
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "Could not register MBeans: no ContextSelector found."
            invokevirtual org.apache.logging.log4j.status.StatusLogger.debug:(Ljava/lang/String;)V
         6: .line 156
            return
         7: .line 158
      StackMap locals: org.apache.logging.log4j.core.selector.ContextSelector
      StackMap stack:
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "Reregistering MBeans after reconfigure. Selector={}"
            aload 1 /* selector */
            invokevirtual org.apache.logging.log4j.status.StatusLogger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 159
            aload 1 /* selector */
            invokeinterface org.apache.logging.log4j.core.selector.ContextSelector.getLoggerContexts:()Ljava/util/List;
            astore 2 /* contexts */
        start local 2 // java.util.List contexts
         9: .line 160
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: .line 161
            aload 2 /* contexts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 24
      StackMap locals: javax.management.MBeanServer org.apache.logging.log4j.core.selector.ContextSelector java.util.List int top java.util.Iterator
      StackMap stack:
        11: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.logging.log4j.core.LoggerContext
            astore 4 /* ctx */
        start local 4 // org.apache.logging.log4j.core.LoggerContext ctx
        12: .line 162
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "Reregistering context ({}/{}): '{}' {}"
            iinc 3 /* i */ 1
            iload 3 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* contexts */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getName:()Ljava/lang/String;
            aload 4 /* ctx */
            invokevirtual org.apache.logging.log4j.status.StatusLogger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 165
            aload 4 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getName:()Ljava/lang/String;
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
        14: .line 167
            new org.apache.logging.log4j.core.jmx.LoggerContextAdmin
            dup
            aload 4 /* ctx */
            getstatic org.apache.logging.log4j.core.jmx.Server.executor:Ljava/util/concurrent/Executor;
            invokespecial org.apache.logging.log4j.core.jmx.LoggerContextAdmin.<init>:(Lorg/apache/logging/log4j/core/LoggerContext;Ljava/util/concurrent/Executor;)V
            astore 6 /* mbean */
        start local 6 // org.apache.logging.log4j.core.jmx.LoggerContextAdmin mbean
        15: .line 168
            aload 0 /* mbs */
            aload 6 /* mbean */
            aload 6 /* mbean */
            invokevirtual org.apache.logging.log4j.core.jmx.LoggerContextAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
        16: .line 170
            aload 4 /* ctx */
            instanceof org.apache.logging.log4j.core.async.AsyncLoggerContext
            ifeq 20
        17: .line 171
            aload 4 /* ctx */
            checkcast org.apache.logging.log4j.core.async.AsyncLoggerContext
            invokevirtual org.apache.logging.log4j.core.async.AsyncLoggerContext.createRingBufferAdmin:()Lorg/apache/logging/log4j/core/jmx/RingBufferAdmin;
            astore 7 /* rbmbean */
        start local 7 // org.apache.logging.log4j.core.jmx.RingBufferAdmin rbmbean
        18: .line 172
            aload 7 /* rbmbean */
            invokevirtual org.apache.logging.log4j.core.jmx.RingBufferAdmin.getBufferSize:()J
            lconst_0
            lcmp
            ifle 20
        19: .line 174
            aload 0 /* mbs */
            aload 7 /* rbmbean */
            aload 7 /* rbmbean */
            invokevirtual org.apache.logging.log4j.core.jmx.RingBufferAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
        end local 7 // org.apache.logging.log4j.core.jmx.RingBufferAdmin rbmbean
        20: .line 183
      StackMap locals: javax.management.MBeanServer org.apache.logging.log4j.core.selector.ContextSelector java.util.List int org.apache.logging.log4j.core.LoggerContext java.util.Iterator org.apache.logging.log4j.core.jmx.LoggerContextAdmin
      StackMap stack:
            aload 4 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getName:()Ljava/lang/String;
            aload 0 /* mbs */
            getstatic org.apache.logging.log4j.core.jmx.Server.executor:Ljava/util/concurrent/Executor;
            invokestatic org.apache.logging.log4j.core.jmx.Server.registerStatusLogger:(Ljava/lang/String;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
        21: .line 184
            aload 4 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getName:()Ljava/lang/String;
            aload 1 /* selector */
            aload 0 /* mbs */
            getstatic org.apache.logging.log4j.core.jmx.Server.executor:Ljava/util/concurrent/Executor;
            invokestatic org.apache.logging.log4j.core.jmx.Server.registerContextSelector:(Ljava/lang/String;Lorg/apache/logging/log4j/core/selector/ContextSelector;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
        22: .line 186
            aload 4 /* ctx */
            aload 0 /* mbs */
            getstatic org.apache.logging.log4j.core.jmx.Server.executor:Ljava/util/concurrent/Executor;
            invokestatic org.apache.logging.log4j.core.jmx.Server.registerLoggerConfigs:(Lorg/apache/logging/log4j/core/LoggerContext;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
        23: .line 187
            aload 4 /* ctx */
            aload 0 /* mbs */
            getstatic org.apache.logging.log4j.core.jmx.Server.executor:Ljava/util/concurrent/Executor;
            invokestatic org.apache.logging.log4j.core.jmx.Server.registerAppenders:(Lorg/apache/logging/log4j/core/LoggerContext;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
        end local 6 // org.apache.logging.log4j.core.jmx.LoggerContextAdmin mbean
        end local 4 // org.apache.logging.log4j.core.LoggerContext ctx
        24: .line 161
      StackMap locals: javax.management.MBeanServer org.apache.logging.log4j.core.selector.ContextSelector java.util.List int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 3 // int i
        end local 2 // java.util.List contexts
        end local 1 // org.apache.logging.log4j.core.selector.ContextSelector selector
        25: .line 189
            goto 28
      StackMap locals: javax.management.MBeanServer
      StackMap stack: java.lang.Exception
        26: astore 1 /* ex */
        start local 1 // java.lang.Exception ex
        27: .line 190
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "Could not register mbeans"
            aload 1 /* ex */
            invokevirtual org.apache.logging.log4j.status.StatusLogger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception ex
        28: .line 192
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0       mbs  Ljavax/management/MBeanServer;
            4   25     1  selector  Lorg/apache/logging/log4j/core/selector/ContextSelector;
            9   25     2  contexts  Ljava/util/List<Lorg/apache/logging/log4j/core/LoggerContext;>;
           10   25     3         i  I
           12   24     4       ctx  Lorg/apache/logging/log4j/core/LoggerContext;
           15   24     6     mbean  Lorg/apache/logging/log4j/core/jmx/LoggerContextAdmin;
           18   20     7   rbmbean  Lorg/apache/logging/log4j/core/jmx/RingBufferAdmin;
           27   28     1        ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     6      26  Class java.lang.Exception
           7    25      26  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      mbs   final

  public static void unregisterMBeans();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 198
            invokestatic org.apache.logging.log4j.core.jmx.Server.isJmxDisabled:()Z
            ifeq 3
         1: .line 199
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "JMX disabled for Log4j2. Not unregistering MBeans."
            invokevirtual org.apache.logging.log4j.status.StatusLogger.debug:(Ljava/lang/String;)V
         2: .line 200
            return
         3: .line 202
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.management.ManagementFactory.getPlatformMBeanServer:()Ljavax/management/MBeanServer;
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterMBeans:(Ljavax/management/MBeanServer;)V
         4: .line 203
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void unregisterMBeans(javax.management.MBeanServer);
    descriptor: (Ljavax/management/MBeanServer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.management.MBeanServer mbs
         0: .line 211
            aload 0 /* mbs */
            ifnull 9
         1: .line 212
            ldc "*"
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterStatusLogger:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 213
            ldc "*"
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterContextSelector:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         3: .line 214
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterContexts:(Ljavax/management/MBeanServer;)V
         4: .line 215
            ldc "*"
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterLoggerConfigs:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         5: .line 216
            ldc "*"
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAsyncLoggerRingBufferAdmins:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         6: .line 217
            ldc "*"
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAsyncLoggerConfigRingBufferAdmins:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         7: .line 218
            ldc "*"
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAppenders:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         8: .line 219
            ldc "*"
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAsyncAppenders:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         9: .line 221
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0   mbs  Ljavax/management/MBeanServer;
    MethodParameters:
      Name  Flags
      mbs   final

  private static org.apache.logging.log4j.core.selector.ContextSelector getContextSelector();
    descriptor: ()Lorg/apache/logging/log4j/core/selector/ContextSelector;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=0
         0: .line 229
            invokestatic org.apache.logging.log4j.LogManager.getFactory:()Lorg/apache/logging/log4j/spi/LoggerContextFactory;
            astore 0 /* factory */
        start local 0 // org.apache.logging.log4j.spi.LoggerContextFactory factory
         1: .line 230
            aload 0 /* factory */
            instanceof org.apache.logging.log4j.core.impl.Log4jContextFactory
            ifeq 4
         2: .line 231
            aload 0 /* factory */
            checkcast org.apache.logging.log4j.core.impl.Log4jContextFactory
            invokevirtual org.apache.logging.log4j.core.impl.Log4jContextFactory.getSelector:()Lorg/apache/logging/log4j/core/selector/ContextSelector;
            astore 1 /* selector */
        start local 1 // org.apache.logging.log4j.core.selector.ContextSelector selector
         3: .line 232
            aload 1 /* selector */
            areturn
        end local 1 // org.apache.logging.log4j.core.selector.ContextSelector selector
         4: .line 234
      StackMap locals: org.apache.logging.log4j.spi.LoggerContextFactory
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.apache.logging.log4j.spi.LoggerContextFactory factory
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1    5     0   factory  Lorg/apache/logging/log4j/spi/LoggerContextFactory;
            3    4     1  selector  Lorg/apache/logging/log4j/core/selector/ContextSelector;

  public static void unregisterLoggerContext(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String loggerContextName
         0: .line 244
            invokestatic org.apache.logging.log4j.core.jmx.Server.isJmxDisabled:()Z
            ifeq 3
         1: .line 245
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "JMX disabled for Log4j2. Not unregistering MBeans."
            invokevirtual org.apache.logging.log4j.status.StatusLogger.debug:(Ljava/lang/String;)V
         2: .line 246
            return
         3: .line 248
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.management.ManagementFactory.getPlatformMBeanServer:()Ljavax/management/MBeanServer;
            astore 1 /* mbs */
        start local 1 // javax.management.MBeanServer mbs
         4: .line 249
            aload 0 /* loggerContextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         5: .line 250
            return
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String loggerContextName
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0  loggerContextName  Ljava/lang/String;
            4    6     1                mbs  Ljavax/management/MBeanServer;
    MethodParameters:
                   Name  Flags
      loggerContextName  final

  public static void unregisterLoggerContext(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 260
            ldc "org.apache.logging.log4j2:type=%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search */
        start local 2 // java.lang.String search
         1: .line 261
            aload 2 /* search */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 264
            aload 0 /* contextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterStatusLogger:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         3: .line 265
            aload 0 /* contextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterContextSelector:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         4: .line 266
            aload 0 /* contextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterLoggerConfigs:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         5: .line 267
            aload 0 /* contextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAppenders:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         6: .line 268
            aload 0 /* contextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAsyncAppenders:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         7: .line 269
            aload 0 /* contextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAsyncLoggerRingBufferAdmins:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         8: .line 270
            aload 0 /* contextName */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAsyncLoggerConfigRingBufferAdmins:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         9: .line 271
            return
        end local 2 // java.lang.String search
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0  contextName  Ljava/lang/String;
            0   10     1          mbs  Ljavax/management/MBeanServer;
            1   10     2       search  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void registerStatusLogger(java.lang.String, javax.management.MBeanServer, java.util.concurrent.Executor);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
        start local 2 // java.util.concurrent.Executor executor
         0: .line 276
            new org.apache.logging.log4j.core.jmx.StatusLoggerAdmin
            dup
            aload 0 /* contextName */
            aload 2 /* executor */
            invokespecial org.apache.logging.log4j.core.jmx.StatusLoggerAdmin.<init>:(Ljava/lang/String;Ljava/util/concurrent/Executor;)V
            astore 3 /* mbean */
        start local 3 // org.apache.logging.log4j.core.jmx.StatusLoggerAdmin mbean
         1: .line 277
            aload 1 /* mbs */
            aload 3 /* mbean */
            aload 3 /* mbean */
            invokevirtual org.apache.logging.log4j.core.jmx.StatusLoggerAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
         2: .line 278
            return
        end local 3 // org.apache.logging.log4j.core.jmx.StatusLoggerAdmin mbean
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            0    3     2     executor  Ljava/util/concurrent/Executor;
            1    3     3        mbean  Lorg/apache/logging/log4j/core/jmx/StatusLoggerAdmin;
    Exceptions:
      throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final
      executor     final

  private static void registerContextSelector(java.lang.String, org.apache.logging.log4j.core.selector.ContextSelector, javax.management.MBeanServer, java.util.concurrent.Executor);
    descriptor: (Ljava/lang/String;Lorg/apache/logging/log4j/core/selector/ContextSelector;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.String contextName
        start local 1 // org.apache.logging.log4j.core.selector.ContextSelector selector
        start local 2 // javax.management.MBeanServer mbs
        start local 3 // java.util.concurrent.Executor executor
         0: .line 284
            new org.apache.logging.log4j.core.jmx.ContextSelectorAdmin
            dup
            aload 0 /* contextName */
            aload 1 /* selector */
            invokespecial org.apache.logging.log4j.core.jmx.ContextSelectorAdmin.<init>:(Ljava/lang/String;Lorg/apache/logging/log4j/core/selector/ContextSelector;)V
            astore 4 /* mbean */
        start local 4 // org.apache.logging.log4j.core.jmx.ContextSelectorAdmin mbean
         1: .line 285
            aload 2 /* mbs */
            aload 4 /* mbean */
            aload 4 /* mbean */
            invokevirtual org.apache.logging.log4j.core.jmx.ContextSelectorAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
         2: .line 286
            return
        end local 4 // org.apache.logging.log4j.core.jmx.ContextSelectorAdmin mbean
        end local 3 // java.util.concurrent.Executor executor
        end local 2 // javax.management.MBeanServer mbs
        end local 1 // org.apache.logging.log4j.core.selector.ContextSelector selector
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1     selector  Lorg/apache/logging/log4j/core/selector/ContextSelector;
            0    3     2          mbs  Ljavax/management/MBeanServer;
            0    3     3     executor  Ljava/util/concurrent/Executor;
            1    3     4        mbean  Lorg/apache/logging/log4j/core/jmx/ContextSelectorAdmin;
    Exceptions:
      throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
    MethodParameters:
             Name  Flags
      contextName  final
      selector     final
      mbs          final
      executor     final

  private static void unregisterStatusLogger(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 289
            ldc "org.apache.logging.log4j2:type=%s,component=StatusLogger"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search */
        start local 2 // java.lang.String search
         1: .line 290
            aload 2 /* search */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 291
            return
        end local 2 // java.lang.String search
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            1    3     2       search  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void unregisterContextSelector(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 294
            ldc "org.apache.logging.log4j2:type=%s,component=ContextSelector"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search */
        start local 2 // java.lang.String search
         1: .line 295
            aload 2 /* search */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 296
            return
        end local 2 // java.lang.String search
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            1    3     2       search  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void unregisterLoggerConfigs(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 300
            ldc "org.apache.logging.log4j2:type=%s,component=Loggers,name=%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search */
        start local 2 // java.lang.String search
         1: .line 301
            aload 2 /* search */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 302
            return
        end local 2 // java.lang.String search
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            1    3     2       search  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void unregisterContexts(javax.management.MBeanServer);
    descriptor: (Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // javax.management.MBeanServer mbs
         0: .line 306
            ldc "org.apache.logging.log4j2:type=%s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 1 /* search */
        start local 1 // java.lang.String search
         1: .line 307
            aload 1 /* search */
            aload 0 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 308
            return
        end local 1 // java.lang.String search
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     mbs  Ljavax/management/MBeanServer;
            1    3     1  search  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mbs   final

  private static void unregisterAppenders(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 312
            ldc "org.apache.logging.log4j2:type=%s,component=Appenders,name=%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search */
        start local 2 // java.lang.String search
         1: .line 313
            aload 2 /* search */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 314
            return
        end local 2 // java.lang.String search
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            1    3     2       search  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void unregisterAsyncAppenders(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 318
            ldc "org.apache.logging.log4j2:type=%s,component=AsyncAppenders,name=%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search */
        start local 2 // java.lang.String search
         1: .line 319
            aload 2 /* search */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 320
            return
        end local 2 // java.lang.String search
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            1    3     2       search  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void unregisterAsyncLoggerRingBufferAdmins(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 324
            ldc "org.apache.logging.log4j2:type=%s,component=AsyncLoggerRingBuffer"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search1 */
        start local 2 // java.lang.String search1
         1: .line 325
            aload 2 /* search1 */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 326
            return
        end local 2 // java.lang.String search1
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            1    3     2      search1  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void unregisterAsyncLoggerConfigRingBufferAdmins(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String contextName
        start local 1 // javax.management.MBeanServer mbs
         0: .line 330
            ldc "org.apache.logging.log4j2:type=%s,component=Loggers,name=%s,subtype=RingBuffer"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* contextName */
            invokestatic org.apache.logging.log4j.core.jmx.Server.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "*"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* search2 */
        start local 2 // java.lang.String search2
         1: .line 331
            aload 2 /* search2 */
            aload 1 /* mbs */
            invokestatic org.apache.logging.log4j.core.jmx.Server.unregisterAllMatching:(Ljava/lang/String;Ljavax/management/MBeanServer;)V
         2: .line 332
            return
        end local 2 // java.lang.String search2
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String contextName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contextName  Ljava/lang/String;
            0    3     1          mbs  Ljavax/management/MBeanServer;
            1    3     2      search2  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      contextName  final
      mbs          final

  private static void unregisterAllMatching(java.lang.String, javax.management.MBeanServer);
    descriptor: (Ljava/lang/String;Ljavax/management/MBeanServer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.lang.String search
        start local 1 // javax.management.MBeanServer mbs
         0: .line 336
            new javax.management.ObjectName
            dup
            aload 0 /* search */
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 2 /* pattern */
        start local 2 // javax.management.ObjectName pattern
         1: .line 337
            aload 1 /* mbs */
            aload 2 /* pattern */
            aconst_null
            invokeinterface javax.management.MBeanServer.queryNames:(Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set;
            astore 3 /* found */
        start local 3 // java.util.Set found
         2: .line 338
            aload 3 /* found */
            ifnull 3
            aload 3 /* found */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 5
         3: .line 339
      StackMap locals: javax.management.ObjectName java.util.Set
      StackMap stack:
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "Unregistering but no MBeans found matching '{}'"
            aload 0 /* search */
            invokevirtual org.apache.logging.log4j.status.StatusLogger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 340
            goto 6
         5: .line 341
      StackMap locals:
      StackMap stack:
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "Unregistering {} MBeans: {}"
            aload 3 /* found */
            invokeinterface java.util.Set.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 3 /* found */
            invokevirtual org.apache.logging.log4j.status.StatusLogger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 343
      StackMap locals:
      StackMap stack:
            aload 3 /* found */
            ifnull 17
         7: .line 344
            aload 3 /* found */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: java.lang.String javax.management.MBeanServer javax.management.ObjectName java.util.Set top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            astore 4 /* objectName */
        start local 4 // javax.management.ObjectName objectName
         9: .line 345
            aload 1 /* mbs */
            aload 4 /* objectName */
            invokeinterface javax.management.MBeanServer.unregisterMBean:(Ljavax/management/ObjectName;)V
        end local 4 // javax.management.ObjectName objectName
        10: .line 344
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 3 // java.util.Set found
        end local 2 // javax.management.ObjectName pattern
        11: .line 348
            goto 17
      StackMap locals: java.lang.String javax.management.MBeanServer
      StackMap stack: javax.management.InstanceNotFoundException
        12: astore 2 /* ex */
        start local 2 // javax.management.InstanceNotFoundException ex
        13: .line 349
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            new java.lang.StringBuilder
            dup
            ldc "Could not unregister MBeans for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* search */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". Ignoring "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.logging.log4j.status.StatusLogger.debug:(Ljava/lang/String;)V
        end local 2 // javax.management.InstanceNotFoundException ex
        14: goto 17
        15: .line 350
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* ex */
        start local 2 // java.lang.Exception ex
        16: .line 351
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            new java.lang.StringBuilder
            dup
            ldc "Could not unregister MBeans for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* search */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
            invokevirtual org.apache.logging.log4j.status.StatusLogger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception ex
        17: .line 353
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // java.lang.String search
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0      search  Ljava/lang/String;
            0   18     1         mbs  Ljavax/management/MBeanServer;
            1   11     2     pattern  Ljavax/management/ObjectName;
            2   11     3       found  Ljava/util/Set<Ljavax/management/ObjectName;>;
            9   10     4  objectName  Ljavax/management/ObjectName;
           13   14     2          ex  Ljavax/management/InstanceNotFoundException;
           16   17     2          ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    11      12  Class javax.management.InstanceNotFoundException
           0    11      15  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      search  final
      mbs     final

  private static void registerLoggerConfigs(org.apache.logging.log4j.core.LoggerContext, javax.management.MBeanServer, java.util.concurrent.Executor);
    descriptor: (Lorg/apache/logging/log4j/core/LoggerContext;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.apache.logging.log4j.core.LoggerContext ctx
        start local 1 // javax.management.MBeanServer mbs
        start local 2 // java.util.concurrent.Executor executor
         0: .line 358
            aload 0 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getConfiguration:()Lorg/apache/logging/log4j/core/config/Configuration;
            invokeinterface org.apache.logging.log4j.core.config.Configuration.getLoggers:()Ljava/util/Map;
            astore 3 /* map */
        start local 3 // java.util.Map map
         1: .line 359
            aload 3 /* map */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.apache.logging.log4j.core.LoggerContext javax.management.MBeanServer java.util.concurrent.Executor java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* name */
        start local 4 // java.lang.String name
         3: .line 360
            aload 3 /* map */
            aload 4 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.logging.log4j.core.config.LoggerConfig
            astore 6 /* cfg */
        start local 6 // org.apache.logging.log4j.core.config.LoggerConfig cfg
         4: .line 361
            new org.apache.logging.log4j.core.jmx.LoggerConfigAdmin
            dup
            aload 0 /* ctx */
            aload 6 /* cfg */
            invokespecial org.apache.logging.log4j.core.jmx.LoggerConfigAdmin.<init>:(Lorg/apache/logging/log4j/core/LoggerContext;Lorg/apache/logging/log4j/core/config/LoggerConfig;)V
            astore 7 /* mbean */
        start local 7 // org.apache.logging.log4j.core.jmx.LoggerConfigAdmin mbean
         5: .line 362
            aload 1 /* mbs */
            aload 7 /* mbean */
            aload 7 /* mbean */
            invokevirtual org.apache.logging.log4j.core.jmx.LoggerConfigAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
         6: .line 364
            aload 6 /* cfg */
            instanceof org.apache.logging.log4j.core.async.AsyncLoggerConfig
            ifeq 10
         7: .line 365
            aload 6 /* cfg */
            checkcast org.apache.logging.log4j.core.async.AsyncLoggerConfig
            astore 8 /* async */
        start local 8 // org.apache.logging.log4j.core.async.AsyncLoggerConfig async
         8: .line 366
            aload 8 /* async */
            aload 0 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getName:()Ljava/lang/String;
            invokevirtual org.apache.logging.log4j.core.async.AsyncLoggerConfig.createRingBufferAdmin:(Ljava/lang/String;)Lorg/apache/logging/log4j/core/jmx/RingBufferAdmin;
            astore 9 /* rbmbean */
        start local 9 // org.apache.logging.log4j.core.jmx.RingBufferAdmin rbmbean
         9: .line 367
            aload 1 /* mbs */
            aload 9 /* rbmbean */
            aload 9 /* rbmbean */
            invokevirtual org.apache.logging.log4j.core.jmx.RingBufferAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
        end local 9 // org.apache.logging.log4j.core.jmx.RingBufferAdmin rbmbean
        end local 8 // org.apache.logging.log4j.core.async.AsyncLoggerConfig async
        end local 7 // org.apache.logging.log4j.core.jmx.LoggerConfigAdmin mbean
        end local 6 // org.apache.logging.log4j.core.config.LoggerConfig cfg
        end local 4 // java.lang.String name
        10: .line 359
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 370
            return
        end local 3 // java.util.Map map
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // org.apache.logging.log4j.core.LoggerContext ctx
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0       ctx  Lorg/apache/logging/log4j/core/LoggerContext;
            0   12     1       mbs  Ljavax/management/MBeanServer;
            0   12     2  executor  Ljava/util/concurrent/Executor;
            1   12     3       map  Ljava/util/Map<Ljava/lang/String;Lorg/apache/logging/log4j/core/config/LoggerConfig;>;
            3   10     4      name  Ljava/lang/String;
            4   10     6       cfg  Lorg/apache/logging/log4j/core/config/LoggerConfig;
            5   10     7     mbean  Lorg/apache/logging/log4j/core/jmx/LoggerConfigAdmin;
            8   10     8     async  Lorg/apache/logging/log4j/core/async/AsyncLoggerConfig;
            9   10     9   rbmbean  Lorg/apache/logging/log4j/core/jmx/RingBufferAdmin;
    Exceptions:
      throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
    MethodParameters:
          Name  Flags
      ctx       final
      mbs       final
      executor  final

  private static void registerAppenders(org.apache.logging.log4j.core.LoggerContext, javax.management.MBeanServer, java.util.concurrent.Executor);
    descriptor: (Lorg/apache/logging/log4j/core/LoggerContext;Ljavax/management/MBeanServer;Ljava/util/concurrent/Executor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.apache.logging.log4j.core.LoggerContext ctx
        start local 1 // javax.management.MBeanServer mbs
        start local 2 // java.util.concurrent.Executor executor
         0: .line 375
            aload 0 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getConfiguration:()Lorg/apache/logging/log4j/core/config/Configuration;
            invokeinterface org.apache.logging.log4j.core.config.Configuration.getAppenders:()Ljava/util/Map;
            astore 3 /* map */
        start local 3 // java.util.Map map
         1: .line 376
            aload 3 /* map */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.apache.logging.log4j.core.LoggerContext javax.management.MBeanServer java.util.concurrent.Executor java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* name */
        start local 4 // java.lang.String name
         3: .line 377
            aload 3 /* map */
            aload 4 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.logging.log4j.core.Appender
            astore 6 /* appender */
        start local 6 // org.apache.logging.log4j.core.Appender appender
         4: .line 379
            aload 6 /* appender */
            instanceof org.apache.logging.log4j.core.appender.AsyncAppender
            ifeq 9
         5: .line 380
            aload 6 /* appender */
            checkcast org.apache.logging.log4j.core.appender.AsyncAppender
            astore 7 /* async */
        start local 7 // org.apache.logging.log4j.core.appender.AsyncAppender async
         6: .line 381
            new org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin
            dup
            aload 0 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getName:()Ljava/lang/String;
            aload 7 /* async */
            invokespecial org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin.<init>:(Ljava/lang/String;Lorg/apache/logging/log4j/core/appender/AsyncAppender;)V
            astore 8 /* mbean */
        start local 8 // org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin mbean
         7: .line 382
            aload 1 /* mbs */
            aload 8 /* mbean */
            aload 8 /* mbean */
            invokevirtual org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
        end local 8 // org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin mbean
        end local 7 // org.apache.logging.log4j.core.appender.AsyncAppender async
         8: .line 383
            goto 11
         9: .line 384
      StackMap locals: org.apache.logging.log4j.core.LoggerContext javax.management.MBeanServer java.util.concurrent.Executor java.util.Map java.lang.String java.util.Iterator org.apache.logging.log4j.core.Appender
      StackMap stack:
            new org.apache.logging.log4j.core.jmx.AppenderAdmin
            dup
            aload 0 /* ctx */
            invokevirtual org.apache.logging.log4j.core.LoggerContext.getName:()Ljava/lang/String;
            aload 6 /* appender */
            invokespecial org.apache.logging.log4j.core.jmx.AppenderAdmin.<init>:(Ljava/lang/String;Lorg/apache/logging/log4j/core/Appender;)V
            astore 7 /* mbean */
        start local 7 // org.apache.logging.log4j.core.jmx.AppenderAdmin mbean
        10: .line 385
            aload 1 /* mbs */
            aload 7 /* mbean */
            aload 7 /* mbean */
            invokevirtual org.apache.logging.log4j.core.jmx.AppenderAdmin.getObjectName:()Ljavax/management/ObjectName;
            invokestatic org.apache.logging.log4j.core.jmx.Server.register:(Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
        end local 7 // org.apache.logging.log4j.core.jmx.AppenderAdmin mbean
        end local 6 // org.apache.logging.log4j.core.Appender appender
        end local 4 // java.lang.String name
        11: .line 376
      StackMap locals: org.apache.logging.log4j.core.LoggerContext javax.management.MBeanServer java.util.concurrent.Executor java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        12: .line 388
            return
        end local 3 // java.util.Map map
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // javax.management.MBeanServer mbs
        end local 0 // org.apache.logging.log4j.core.LoggerContext ctx
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0       ctx  Lorg/apache/logging/log4j/core/LoggerContext;
            0   13     1       mbs  Ljavax/management/MBeanServer;
            0   13     2  executor  Ljava/util/concurrent/Executor;
            1   13     3       map  Ljava/util/Map<Ljava/lang/String;Lorg/apache/logging/log4j/core/Appender;>;
            3   11     4      name  Ljava/lang/String;
            4   11     6  appender  Lorg/apache/logging/log4j/core/Appender;
            6    8     7     async  Lorg/apache/logging/log4j/core/appender/AsyncAppender;
            7    8     8     mbean  Lorg/apache/logging/log4j/core/jmx/AsyncAppenderAdmin;
           10   11     7     mbean  Lorg/apache/logging/log4j/core/jmx/AppenderAdmin;
    Exceptions:
      throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
    MethodParameters:
          Name  Flags
      ctx       final
      mbs       final
      executor  final

  private static void register(javax.management.MBeanServer, java.lang.Object, javax.management.ObjectName);
    descriptor: (Ljavax/management/MBeanServer;Ljava/lang/Object;Ljavax/management/ObjectName;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // javax.management.MBeanServer mbs
        start local 1 // java.lang.Object mbean
        start local 2 // javax.management.ObjectName objectName
         0: .line 392
            getstatic org.apache.logging.log4j.core.jmx.Server.LOGGER:Lorg/apache/logging/log4j/status/StatusLogger;
            ldc "Registering MBean {}"
            aload 2 /* objectName */
            invokevirtual org.apache.logging.log4j.status.StatusLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 393
            aload 0 /* mbs */
            aload 1 /* mbean */
            aload 2 /* objectName */
            invokeinterface javax.management.MBeanServer.registerMBean:(Ljava/lang/Object;Ljavax/management/ObjectName;)Ljavax/management/ObjectInstance;
            pop
         2: .line 394
            return
        end local 2 // javax.management.ObjectName objectName
        end local 1 // java.lang.Object mbean
        end local 0 // javax.management.MBeanServer mbs
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0         mbs  Ljavax/management/MBeanServer;
            0    3     1       mbean  Ljava/lang/Object;
            0    3     2  objectName  Ljavax/management/ObjectName;
    Exceptions:
      throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
    MethodParameters:
            Name  Flags
      mbs         final
      mbean       final
      objectName  final
}
SourceFile: "Server.java"