public class ch.qos.logback.classic.joran.action.JMXConfiguratorAction extends ch.qos.logback.core.joran.action.Action
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: ch.qos.logback.classic.joran.action.JMXConfiguratorAction
  super_class: ch.qos.logback.core.joran.action.Action
{
  static final java.lang.String OBJECT_NAME_ATTRIBUTE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "objectName"

  static final java.lang.String CONTEXT_NAME_ATTRIBUTE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "contextName"

  static final char JMX_NAME_SEPARATOR;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 44

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // ch.qos.logback.classic.joran.action.JMXConfiguratorAction this
         0: .line 31
            aload 0 /* this */
            invokespecial ch.qos.logback.core.joran.action.Action.<init>:()V
            return
        end local 0 // ch.qos.logback.classic.joran.action.JMXConfiguratorAction this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/classic/joran/action/JMXConfiguratorAction;

  public void begin(ch.qos.logback.core.joran.spi.InterpretationContext, java.lang.String, org.xml.sax.Attributes);
    descriptor: (Lch/qos/logback/core/joran/spi/InterpretationContext;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // ch.qos.logback.classic.joran.action.JMXConfiguratorAction this
        start local 1 // ch.qos.logback.core.joran.spi.InterpretationContext ec
        start local 2 // java.lang.String name
        start local 3 // org.xml.sax.Attributes attributes
         0: .line 39
            aload 0 /* this */
            ldc "begin"
            invokevirtual ch.qos.logback.classic.joran.action.JMXConfiguratorAction.addInfo:(Ljava/lang/String;)V
         1: .line 41
            aload 0 /* this */
            getfield ch.qos.logback.classic.joran.action.JMXConfiguratorAction.context:Lch/qos/logback/core/Context;
            invokeinterface ch.qos.logback.core.Context.getName:()Ljava/lang/String;
            astore 4 /* contextName */
        start local 4 // java.lang.String contextName
         2: .line 42
            aload 3 /* attributes */
            ldc "contextName"
            invokeinterface org.xml.sax.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* contextNameAttributeVal */
        start local 5 // java.lang.String contextNameAttributeVal
         3: .line 43
            aload 5 /* contextNameAttributeVal */
            invokestatic ch.qos.logback.core.util.OptionHelper.isEmpty:(Ljava/lang/String;)Z
            ifne 5
         4: .line 44
            aload 5 /* contextNameAttributeVal */
            astore 4 /* contextName */
         5: .line 48
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* attributes */
            ldc "objectName"
            invokeinterface org.xml.sax.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* objectNameAttributeVal */
        start local 7 // java.lang.String objectNameAttributeVal
         6: .line 49
            aload 7 /* objectNameAttributeVal */
            invokestatic ch.qos.logback.core.util.OptionHelper.isEmpty:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 50
            aload 4 /* contextName */
            ldc Lch/qos/logback/classic/jmx/JMXConfigurator;
            invokestatic ch.qos.logback.classic.jmx.MBeanUtil.getObjectNameFor:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String;
            astore 6 /* objectNameAsStr */
        start local 6 // java.lang.String objectNameAsStr
         8: .line 51
            goto 10
        end local 6 // java.lang.String objectNameAsStr
         9: .line 52
      StackMap locals: ch.qos.logback.classic.joran.action.JMXConfiguratorAction ch.qos.logback.core.joran.spi.InterpretationContext java.lang.String org.xml.sax.Attributes java.lang.String java.lang.String top java.lang.String
      StackMap stack:
            aload 7 /* objectNameAttributeVal */
            astore 6 /* objectNameAsStr */
        start local 6 // java.lang.String objectNameAsStr
        10: .line 55
      StackMap locals: ch.qos.logback.classic.joran.action.JMXConfiguratorAction ch.qos.logback.core.joran.spi.InterpretationContext java.lang.String org.xml.sax.Attributes java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield ch.qos.logback.classic.joran.action.JMXConfiguratorAction.context:Lch/qos/logback/core/Context;
            aload 0 /* this */
            aload 6 /* objectNameAsStr */
            invokestatic ch.qos.logback.classic.jmx.MBeanUtil.string2ObjectName:(Lch/qos/logback/core/Context;Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 8 /* objectName */
        start local 8 // javax.management.ObjectName objectName
        11: .line 56
            aload 8 /* objectName */
            ifnonnull 14
        12: .line 57
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Failed construct ObjectName for ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* objectNameAsStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual ch.qos.logback.classic.joran.action.JMXConfiguratorAction.addError:(Ljava/lang/String;)V
        13: .line 58
            return
        14: .line 61
      StackMap locals: javax.management.ObjectName
      StackMap stack:
            invokestatic java.lang.management.ManagementFactory.getPlatformMBeanServer:()Ljavax/management/MBeanServer;
            astore 9 /* mbs */
        start local 9 // javax.management.MBeanServer mbs
        15: .line 62
            aload 9 /* mbs */
            aload 8 /* objectName */
            invokestatic ch.qos.logback.classic.jmx.MBeanUtil.isRegistered:(Ljavax/management/MBeanServer;Ljavax/management/ObjectName;)Z
            ifne 21
        16: .line 67
            new ch.qos.logback.classic.jmx.JMXConfigurator
            dup
            aload 0 /* this */
            getfield ch.qos.logback.classic.joran.action.JMXConfiguratorAction.context:Lch/qos/logback/core/Context;
            checkcast ch.qos.logback.classic.LoggerContext
            aload 9 /* mbs */
            aload 8 /* objectName */
            invokespecial ch.qos.logback.classic.jmx.JMXConfigurator.<init>:(Lch/qos/logback/classic/LoggerContext;Ljavax/management/MBeanServer;Ljavax/management/ObjectName;)V
            astore 10 /* jmxConfigurator */
        start local 10 // ch.qos.logback.classic.jmx.JMXConfigurator jmxConfigurator
        17: .line 69
            aload 9 /* mbs */
            aload 10 /* jmxConfigurator */
            aload 8 /* objectName */
            invokeinterface javax.management.MBeanServer.registerMBean:(Ljava/lang/Object;Ljavax/management/ObjectName;)Ljavax/management/ObjectInstance;
            pop
        18: .line 70
            goto 21
      StackMap locals: ch.qos.logback.classic.joran.action.JMXConfiguratorAction ch.qos.logback.core.joran.spi.InterpretationContext java.lang.String org.xml.sax.Attributes java.lang.String java.lang.String java.lang.String java.lang.String javax.management.ObjectName javax.management.MBeanServer ch.qos.logback.classic.jmx.JMXConfigurator
      StackMap stack: java.lang.Exception
        19: astore 11 /* e */
        start local 11 // java.lang.Exception e
        20: .line 71
            aload 0 /* this */
            ldc "Failed to create mbean"
            aload 11 /* e */
            invokevirtual ch.qos.logback.classic.joran.action.JMXConfiguratorAction.addError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 11 // java.lang.Exception e
        end local 10 // ch.qos.logback.classic.jmx.JMXConfigurator jmxConfigurator
        21: .line 75
      StackMap locals:
      StackMap stack:
            return
        end local 9 // javax.management.MBeanServer mbs
        end local 8 // javax.management.ObjectName objectName
        end local 7 // java.lang.String objectNameAttributeVal
        end local 6 // java.lang.String objectNameAsStr
        end local 5 // java.lang.String contextNameAttributeVal
        end local 4 // java.lang.String contextName
        end local 3 // org.xml.sax.Attributes attributes
        end local 2 // java.lang.String name
        end local 1 // ch.qos.logback.core.joran.spi.InterpretationContext ec
        end local 0 // ch.qos.logback.classic.joran.action.JMXConfiguratorAction this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   22     0                     this  Lch/qos/logback/classic/joran/action/JMXConfiguratorAction;
            0   22     1                       ec  Lch/qos/logback/core/joran/spi/InterpretationContext;
            0   22     2                     name  Ljava/lang/String;
            0   22     3               attributes  Lorg/xml/sax/Attributes;
            2   22     4              contextName  Ljava/lang/String;
            3   22     5  contextNameAttributeVal  Ljava/lang/String;
            8    9     6          objectNameAsStr  Ljava/lang/String;
           10   22     6          objectNameAsStr  Ljava/lang/String;
            6   22     7   objectNameAttributeVal  Ljava/lang/String;
           11   22     8               objectName  Ljavax/management/ObjectName;
           15   22     9                      mbs  Ljavax/management/MBeanServer;
           17   21    10          jmxConfigurator  Lch/qos/logback/classic/jmx/JMXConfigurator;
           20   21    11                        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          17    18      19  Class java.lang.Exception
    Exceptions:
      throws ch.qos.logback.core.joran.spi.ActionException
    MethodParameters:
            Name  Flags
      ec          
      name        
      attributes  

  public void end(ch.qos.logback.core.joran.spi.InterpretationContext, java.lang.String);
    descriptor: (Lch/qos/logback/core/joran/spi/InterpretationContext;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // ch.qos.logback.classic.joran.action.JMXConfiguratorAction this
        start local 1 // ch.qos.logback.core.joran.spi.InterpretationContext ec
        start local 2 // java.lang.String name
         0: .line 80
            return
        end local 2 // java.lang.String name
        end local 1 // ch.qos.logback.core.joran.spi.InterpretationContext ec
        end local 0 // ch.qos.logback.classic.joran.action.JMXConfiguratorAction this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/classic/joran/action/JMXConfiguratorAction;
            0    1     1    ec  Lch/qos/logback/core/joran/spi/InterpretationContext;
            0    1     2  name  Ljava/lang/String;
    Exceptions:
      throws ch.qos.logback.core.joran.spi.ActionException
    MethodParameters:
      Name  Flags
      ec    
      name  
}
SourceFile: "JMXConfiguratorAction.java"