public class org.apache.catalina.manager.JMXProxyServlet extends jakarta.servlet.http.HttpServlet
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.manager.JMXProxyServlet
  super_class: jakarta.servlet.http.HttpServlet
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.lang.String[] NO_PARAMETERS;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected transient javax.management.MBeanServer mBeanServer;
    descriptor: Ljavax/management/MBeanServer;
    flags: (0x0084) ACC_PROTECTED, ACC_TRANSIENT

  protected transient org.apache.tomcat.util.modeler.Registry registry;
    descriptor: Lorg/apache/tomcat/util/modeler/Registry;
    flags: (0x0084) ACC_PROTECTED, ACC_TRANSIENT

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 56
            iconst_0
            anewarray java.lang.String
            putstatic org.apache.catalina.manager.JMXProxyServlet.NO_PARAMETERS:[Ljava/lang/String;
         1: .line 58
            ldc Lorg/apache/catalina/manager/JMXProxyServlet;
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
            putstatic org.apache.catalina.manager.JMXProxyServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
         0: .line 50
            aload 0 /* this */
            invokespecial jakarta.servlet.http.HttpServlet.<init>:()V
         1: .line 64
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
         2: .line 50
            return
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/manager/JMXProxyServlet;

  public void init();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
         0: .line 75
            aload 0 /* this */
            aconst_null
            aconst_null
            invokestatic org.apache.tomcat.util.modeler.Registry.getRegistry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/tomcat/util/modeler/Registry;
            putfield org.apache.catalina.manager.JMXProxyServlet.registry:Lorg/apache/tomcat/util/modeler/Registry;
         1: .line 76
            aload 0 /* this */
            aconst_null
            aconst_null
            invokestatic org.apache.tomcat.util.modeler.Registry.getRegistry:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/tomcat/util/modeler/Registry;
            invokevirtual org.apache.tomcat.util.modeler.Registry.getMBeanServer:()Ljavax/management/MBeanServer;
            putfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
         2: .line 77
            return
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/manager/JMXProxyServlet;
    Exceptions:
      throws jakarta.servlet.ServletException

  public void doGet(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest request
        start local 2 // jakarta.servlet.http.HttpServletResponse response
         0: .line 92
            aload 2 /* response */
            ldc "text/plain;charset=utf-8"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setContentType:(Ljava/lang/String;)V
         1: .line 96
            aload 2 /* response */
            ldc "X-Content-Type-Options"
            ldc "nosniff"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 97
            aload 2 /* response */
            invokeinterface jakarta.servlet.http.HttpServletResponse.getWriter:()Ljava/io/PrintWriter;
            astore 3 /* writer */
        start local 3 // java.io.PrintWriter writer
         3: .line 99
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
            ifnonnull 6
         4: .line 100
            aload 3 /* writer */
            ldc "Error - No mbean server"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         5: .line 101
            return
         6: .line 104
      StackMap locals: java.io.PrintWriter
      StackMap stack:
            aload 1 /* request */
            ldc "set"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* qry */
        start local 4 // java.lang.String qry
         7: .line 105
            aload 4 /* qry */
            ifnull 12
         8: .line 106
            aload 1 /* request */
            ldc "att"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         9: .line 107
            aload 1 /* request */
            ldc "val"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* val */
        start local 6 // java.lang.String val
        10: .line 109
            aload 0 /* this */
            aload 3 /* writer */
            aload 4 /* qry */
            aload 5 /* name */
            aload 6 /* val */
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.setAttribute:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        11: .line 110
            return
        end local 6 // java.lang.String val
        end local 5 // java.lang.String name
        12: .line 112
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* request */
            ldc "get"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* qry */
        13: .line 113
            aload 4 /* qry */
            ifnull 17
        14: .line 114
            aload 1 /* request */
            ldc "att"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
        15: .line 115
            aload 0 /* this */
            aload 3 /* writer */
            aload 4 /* qry */
            aload 5 /* name */
            aload 1 /* request */
            ldc "key"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.getAttribute:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        16: .line 116
            return
        end local 5 // java.lang.String name
        17: .line 118
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            ldc "invoke"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* qry */
        18: .line 119
            aload 4 /* qry */
            ifnull 23
        19: .line 120
            aload 1 /* request */
            ldc "op"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* opName */
        start local 5 // java.lang.String opName
        20: .line 121
            aload 0 /* this */
            aload 1 /* request */
            ldc "ps"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.getInvokeParameters:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* params */
        start local 6 // java.lang.String[] params
        21: .line 122
            aload 0 /* this */
            aload 3 /* writer */
            aload 4 /* qry */
            aload 5 /* opName */
            aload 6 /* params */
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.invokeOperation:(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
        22: .line 123
            return
        end local 6 // java.lang.String[] params
        end local 5 // java.lang.String opName
        23: .line 125
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            ldc "qry"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* qry */
        24: .line 126
            aload 4 /* qry */
            ifnonnull 26
        25: .line 127
            ldc "*:*"
            astore 4 /* qry */
        26: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* writer */
            aload 4 /* qry */
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.listBeans:(Ljava/io/PrintWriter;Ljava/lang/String;)V
        27: .line 131
            return
        end local 4 // java.lang.String qry
        end local 3 // java.io.PrintWriter writer
        end local 2 // jakarta.servlet.http.HttpServletResponse response
        end local 1 // jakarta.servlet.http.HttpServletRequest request
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0   28     1   request  Ljakarta/servlet/http/HttpServletRequest;
            0   28     2  response  Ljakarta/servlet/http/HttpServletResponse;
            3   28     3    writer  Ljava/io/PrintWriter;
            7   28     4       qry  Ljava/lang/String;
            9   12     5      name  Ljava/lang/String;
           10   12     6       val  Ljava/lang/String;
           15   17     5      name  Ljava/lang/String;
           20   23     5    opName  Ljava/lang/String;
           21   23     6    params  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, jakarta.servlet.ServletException
    MethodParameters:
          Name  Flags
      request   
      response  

  public void getAttribute(java.io.PrintWriter, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.io.PrintWriter writer
        start local 2 // java.lang.String onameStr
        start local 3 // java.lang.String att
        start local 4 // java.lang.String key
         0: .line 136
            new javax.management.ObjectName
            dup
            aload 2 /* onameStr */
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 5 /* oname */
        start local 5 // javax.management.ObjectName oname
         1: .line 137
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
            aload 5 /* oname */
            aload 3 /* att */
            invokeinterface javax.management.MBeanServer.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
            astore 6 /* value */
        start local 6 // java.lang.Object value
         2: .line 139
            aload 4 /* key */
            ifnull 4
            aload 6 /* value */
            instanceof javax.management.openmbean.CompositeData
            ifeq 4
         3: .line 140
            aload 6 /* value */
            checkcast javax.management.openmbean.CompositeData
            aload 4 /* key */
            invokeinterface javax.management.openmbean.CompositeData.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 6 /* value */
         4: .line 143
      StackMap locals: javax.management.ObjectName java.lang.Object
      StackMap stack:
            aload 6 /* value */
            ifnull 7
         5: .line 144
            aload 6 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 7 /* valueStr */
        start local 7 // java.lang.String valueStr
         6: .line 145
            goto 8
        end local 7 // java.lang.String valueStr
         7: .line 146
      StackMap locals:
      StackMap stack:
            ldc "<null>"
            astore 7 /* valueStr */
        start local 7 // java.lang.String valueStr
         8: .line 149
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* writer */
            ldc "OK - Attribute get '"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         9: .line 150
            aload 1 /* writer */
            aload 2 /* onameStr */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        10: .line 151
            aload 1 /* writer */
            ldc "' - "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        11: .line 152
            aload 1 /* writer */
            aload 3 /* att */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        12: .line 154
            aload 4 /* key */
            ifnull 16
        13: .line 155
            aload 1 /* writer */
            ldc " - key '"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        14: .line 156
            aload 1 /* writer */
            aload 4 /* key */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        15: .line 157
            aload 1 /* writer */
            ldc "'"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        16: .line 160
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            ldc " = "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        17: .line 162
            aload 1 /* writer */
            aload 7 /* valueStr */
            invokestatic org.apache.catalina.mbeans.MBeanDumper.escape:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 7 // java.lang.String valueStr
        end local 6 // java.lang.Object value
        end local 5 // javax.management.ObjectName oname
        18: .line 163
            goto 22
      StackMap locals: org.apache.catalina.manager.JMXProxyServlet java.io.PrintWriter java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.Exception
        19: astore 5 /* ex */
        start local 5 // java.lang.Exception ex
        20: .line 164
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "Error - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* ex */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        21: .line 165
            aload 5 /* ex */
            aload 1 /* writer */
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintWriter;)V
        end local 5 // java.lang.Exception ex
        22: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String key
        end local 3 // java.lang.String att
        end local 2 // java.lang.String onameStr
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0   23     1    writer  Ljava/io/PrintWriter;
            0   23     2  onameStr  Ljava/lang/String;
            0   23     3       att  Ljava/lang/String;
            0   23     4       key  Ljava/lang/String;
            1   18     5     oname  Ljavax/management/ObjectName;
            2   18     6     value  Ljava/lang/Object;
            6    7     7  valueStr  Ljava/lang/String;
            8   18     7  valueStr  Ljava/lang/String;
           20   22     5        ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    18      19  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      writer    
      onameStr  
      att       
      key       

  public void setAttribute(java.io.PrintWriter, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.io.PrintWriter writer
        start local 2 // java.lang.String onameStr
        start local 3 // java.lang.String att
        start local 4 // java.lang.String val
         0: .line 172
            aload 0 /* this */
            aload 2 /* onameStr */
            aload 3 /* att */
            aload 4 /* val */
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.setAttributeInternal:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 173
            aload 1 /* writer */
            ldc "OK - Attribute set"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 174
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 5 /* ex */
        start local 5 // java.lang.Exception ex
         4: .line 175
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "Error - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* ex */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         5: .line 176
            aload 5 /* ex */
            aload 1 /* writer */
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintWriter;)V
        end local 5 // java.lang.Exception ex
         6: .line 178
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String val
        end local 3 // java.lang.String att
        end local 2 // java.lang.String onameStr
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0    7     1    writer  Ljava/io/PrintWriter;
            0    7     2  onameStr  Ljava/lang/String;
            0    7     3       att  Ljava/lang/String;
            0    7     4       val  Ljava/lang/String;
            4    6     5        ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      writer    
      onameStr  
      att       
      val       

  public void listBeans(java.io.PrintWriter, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.io.PrintWriter writer
        start local 2 // java.lang.String qry
         0: .line 183
            aconst_null
            astore 3 /* names */
        start local 3 // java.util.Set names
         1: .line 185
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
            new javax.management.ObjectName
            dup
            aload 2 /* qry */
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            aconst_null
            invokeinterface javax.management.MBeanServer.queryNames:(Ljavax/management/ObjectName;Ljavax/management/QueryExp;)Ljava/util/Set;
            astore 3 /* names */
         2: .line 186
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "OK - Number of results: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* names */
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         3: .line 187
            aload 1 /* writer */
            invokevirtual java.io.PrintWriter.println:()V
         4: .line 188
            goto 9
      StackMap locals: org.apache.catalina.manager.JMXProxyServlet java.io.PrintWriter java.lang.String java.util.Set
      StackMap stack: java.lang.Exception
         5: astore 4 /* ex */
        start local 4 // java.lang.Exception ex
         6: .line 189
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "Error - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* ex */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         7: .line 190
            aload 4 /* ex */
            aload 1 /* writer */
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintWriter;)V
         8: .line 191
            return
        end local 4 // java.lang.Exception ex
         9: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
            aload 3 /* names */
            invokestatic org.apache.catalina.mbeans.MBeanDumper.dumpBeans:(Ljavax/management/MBeanServer;Ljava/util/Set;)Ljava/lang/String;
            astore 4 /* dump */
        start local 4 // java.lang.String dump
        10: .line 195
            aload 1 /* writer */
            aload 4 /* dump */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        11: .line 196
            return
        end local 4 // java.lang.String dump
        end local 3 // java.util.Set names
        end local 2 // java.lang.String qry
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0   12     1  writer  Ljava/io/PrintWriter;
            0   12     2     qry  Ljava/lang/String;
            1   12     3   names  Ljava/util/Set<Ljavax/management/ObjectName;>;
            6    9     4      ex  Ljava/lang/Exception;
           10   12     4    dump  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      writer  
      qry     

  public boolean isSupported(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.lang.String type
         0: .line 206
            iconst_1
            ireturn
        end local 1 // java.lang.String type
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0    1     1  type  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private void invokeOperation(java.io.PrintWriter, java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.io.PrintWriter writer
        start local 2 // java.lang.String onameStr
        start local 3 // java.lang.String op
        start local 4 // java.lang.String[] valuesStr
         0: .line 213
            aload 0 /* this */
            aload 2 /* onameStr */
            aload 3 /* op */
            aload 4 /* valuesStr */
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.invokeOperationInternal:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* retVal */
        start local 5 // java.lang.Object retVal
         1: .line 214
            aload 5 /* retVal */
            ifnull 5
         2: .line 215
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "OK - Operation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* op */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " returned:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         3: .line 216
            aload 0 /* this */
            ldc ""
            aload 1 /* writer */
            aload 5 /* retVal */
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.output:(Ljava/lang/String;Ljava/io/PrintWriter;Ljava/lang/Object;)V
         4: .line 217
            goto 10
         5: .line 218
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "OK - Operation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* op */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " without return value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 5 // java.lang.Object retVal
         6: .line 220
            goto 10
      StackMap locals: org.apache.catalina.manager.JMXProxyServlet java.io.PrintWriter java.lang.String java.lang.String java.lang.String[]
      StackMap stack: java.lang.Exception
         7: astore 5 /* ex */
        start local 5 // java.lang.Exception ex
         8: .line 221
            aload 1 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "Error - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* ex */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         9: .line 222
            aload 5 /* ex */
            aload 1 /* writer */
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintWriter;)V
        end local 5 // java.lang.Exception ex
        10: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String[] valuesStr
        end local 3 // java.lang.String op
        end local 2 // java.lang.String onameStr
        end local 1 // java.io.PrintWriter writer
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0   11     1     writer  Ljava/io/PrintWriter;
            0   11     2   onameStr  Ljava/lang/String;
            0   11     3         op  Ljava/lang/String;
            0   11     4  valuesStr  [Ljava/lang/String;
            1    6     5     retVal  Ljava/lang/Object;
            8   10     5         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      writer     
      onameStr   
      op         
      valuesStr  

  private java.lang.String[] getInvokeParameters(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.lang.String paramString
         0: .line 237
            aload 1 /* paramString */
            ifnonnull 2
         1: .line 238
            getstatic org.apache.catalina.manager.JMXProxyServlet.NO_PARAMETERS:[Ljava/lang/String;
            areturn
         2: .line 240
      StackMap locals:
      StackMap stack:
            aload 1 /* paramString */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 1 // java.lang.String paramString
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0    3     1  paramString  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      paramString  

  private void setAttributeInternal(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.lang.String onameStr
        start local 2 // java.lang.String attributeName
        start local 3 // java.lang.String value
         0: .line 249
            new javax.management.ObjectName
            dup
            aload 1 /* onameStr */
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 4 /* oname */
        start local 4 // javax.management.ObjectName oname
         1: .line 250
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.registry:Lorg/apache/tomcat/util/modeler/Registry;
            aload 4 /* oname */
            aload 2 /* attributeName */
            invokevirtual org.apache.tomcat.util.modeler.Registry.getType:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* type */
        start local 5 // java.lang.String type
         2: .line 251
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.registry:Lorg/apache/tomcat/util/modeler/Registry;
            aload 5 /* type */
            aload 3 /* value */
            invokevirtual org.apache.tomcat.util.modeler.Registry.convertValue:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            astore 6 /* valueObj */
        start local 6 // java.lang.Object valueObj
         3: .line 252
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
            aload 4 /* oname */
            new javax.management.Attribute
            dup
            aload 2 /* attributeName */
            aload 6 /* valueObj */
            invokespecial javax.management.Attribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface javax.management.MBeanServer.setAttribute:(Ljavax/management/ObjectName;Ljavax/management/Attribute;)V
         4: .line 253
            return
        end local 6 // java.lang.Object valueObj
        end local 5 // java.lang.String type
        end local 4 // javax.management.ObjectName oname
        end local 3 // java.lang.String value
        end local 2 // java.lang.String attributeName
        end local 1 // java.lang.String onameStr
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0    5     1       onameStr  Ljava/lang/String;
            0    5     2  attributeName  Ljava/lang/String;
            0    5     3          value  Ljava/lang/String;
            1    5     4          oname  Ljavax/management/ObjectName;
            2    5     5           type  Ljava/lang/String;
            3    5     6       valueObj  Ljava/lang/Object;
    Exceptions:
      throws javax.management.OperationsException, javax.management.MBeanException, javax.management.ReflectionException
    MethodParameters:
               Name  Flags
      onameStr       
      attributeName  
      value          

  private java.lang.Object invokeOperationInternal(java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=12, args_size=4
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.lang.String onameStr
        start local 2 // java.lang.String operation
        start local 3 // java.lang.String[] parameters
         0: .line 269
            new javax.management.ObjectName
            dup
            aload 1 /* onameStr */
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 4 /* oname */
        start local 4 // javax.management.ObjectName oname
         1: .line 270
            aload 3 /* parameters */
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: javax.management.ObjectName
      StackMap stack:
         2: aload 3 /* parameters */
            arraylength
      StackMap locals:
      StackMap stack: int
         3: istore 5 /* paramCount */
        start local 5 // int paramCount
         4: .line 271
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.registry:Lorg/apache/tomcat/util/modeler/Registry;
            aload 4 /* oname */
            aload 2 /* operation */
            iload 5 /* paramCount */
            invokevirtual org.apache.tomcat.util.modeler.Registry.getMethodInfo:(Ljavax/management/ObjectName;Ljava/lang/String;I)Ljavax/management/MBeanOperationInfo;
            astore 6 /* methodInfo */
        start local 6 // javax.management.MBeanOperationInfo methodInfo
         5: .line 272
            aload 6 /* methodInfo */
            ifnonnull 18
         6: .line 274
            aconst_null
            astore 7 /* info */
        start local 7 // javax.management.MBeanInfo info
         7: .line 276
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.registry:Lorg/apache/tomcat/util/modeler/Registry;
            invokevirtual org.apache.tomcat.util.modeler.Registry.getMBeanServer:()Ljavax/management/MBeanServer;
            aload 4 /* oname */
            invokeinterface javax.management.MBeanServer.getMBeanInfo:(Ljavax/management/ObjectName;)Ljavax/management/MBeanInfo;
            astore 7 /* info */
         8: .line 277
            goto 13
      StackMap locals: org.apache.catalina.manager.JMXProxyServlet java.lang.String java.lang.String java.lang.String[] javax.management.ObjectName int javax.management.MBeanOperationInfo javax.management.MBeanInfo
      StackMap stack: javax.management.InstanceNotFoundException
         9: astore 8 /* infe */
        start local 8 // javax.management.InstanceNotFoundException infe
        10: .line 278
            aload 8 /* infe */
            athrow
        end local 8 // javax.management.InstanceNotFoundException infe
        11: .line 279
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        12: .line 280
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.catalina.manager.JMXProxyServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "jmxProxyServlet.noBeanFound"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* onameStr */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 8 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Exception e
        13: .line 282
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        14: .line 283
            getstatic org.apache.catalina.manager.JMXProxyServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "jmxProxyServlet.noOperationOnBean"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        15: .line 284
            aload 2 /* operation */
            aastore
            dup
            iconst_1
            iload 5 /* paramCount */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 1 /* onameStr */
            aastore
            dup
            iconst_3
            aload 7 /* info */
            invokevirtual javax.management.MBeanInfo.getClassName:()Ljava/lang/String;
            aastore
        16: .line 283
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        17: .line 282
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // javax.management.MBeanInfo info
        18: .line 287
      StackMap locals:
      StackMap stack:
            aload 6 /* methodInfo */
            invokevirtual javax.management.MBeanOperationInfo.getSignature:()[Ljavax/management/MBeanParameterInfo;
            astore 7 /* signature */
        start local 7 // javax.management.MBeanParameterInfo[] signature
        19: .line 288
            aload 7 /* signature */
            arraylength
            anewarray java.lang.String
            astore 8 /* signatureTypes */
        start local 8 // java.lang.String[] signatureTypes
        20: .line 289
            aload 7 /* signature */
            arraylength
            anewarray java.lang.Object
            astore 9 /* values */
        start local 9 // java.lang.Object[] values
        21: .line 290
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        22: goto 27
        23: .line 291
      StackMap locals: org.apache.catalina.manager.JMXProxyServlet java.lang.String java.lang.String java.lang.String[] javax.management.ObjectName int javax.management.MBeanOperationInfo javax.management.MBeanParameterInfo[] java.lang.String[] java.lang.Object[] int
      StackMap stack:
            aload 7 /* signature */
            iload 10 /* i */
            aaload
            astore 11 /* pi */
        start local 11 // javax.management.MBeanParameterInfo pi
        24: .line 292
            aload 8 /* signatureTypes */
            iload 10 /* i */
            aload 11 /* pi */
            invokevirtual javax.management.MBeanParameterInfo.getType:()Ljava/lang/String;
            aastore
        25: .line 293
            aload 9 /* values */
            iload 10 /* i */
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.registry:Lorg/apache/tomcat/util/modeler/Registry;
            aload 11 /* pi */
            invokevirtual javax.management.MBeanParameterInfo.getType:()Ljava/lang/String;
            aload 3 /* parameters */
            iload 10 /* i */
            aaload
            invokevirtual org.apache.tomcat.util.modeler.Registry.convertValue:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            aastore
        end local 11 // javax.management.MBeanParameterInfo pi
        26: .line 290
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 10 /* i */
            aload 7 /* signature */
            arraylength
            if_icmplt 23
        end local 10 // int i
        28: .line 296
            aload 0 /* this */
            getfield org.apache.catalina.manager.JMXProxyServlet.mBeanServer:Ljavax/management/MBeanServer;
            aload 4 /* oname */
            aload 2 /* operation */
            aload 9 /* values */
            aload 8 /* signatureTypes */
            invokeinterface javax.management.MBeanServer.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 9 // java.lang.Object[] values
        end local 8 // java.lang.String[] signatureTypes
        end local 7 // javax.management.MBeanParameterInfo[] signature
        end local 6 // javax.management.MBeanOperationInfo methodInfo
        end local 5 // int paramCount
        end local 4 // javax.management.ObjectName oname
        end local 3 // java.lang.String[] parameters
        end local 2 // java.lang.String operation
        end local 1 // java.lang.String onameStr
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0   29     1        onameStr  Ljava/lang/String;
            0   29     2       operation  Ljava/lang/String;
            0   29     3      parameters  [Ljava/lang/String;
            1   29     4           oname  Ljavax/management/ObjectName;
            4   29     5      paramCount  I
            5   29     6      methodInfo  Ljavax/management/MBeanOperationInfo;
            7   18     7            info  Ljavax/management/MBeanInfo;
           10   11     8            infe  Ljavax/management/InstanceNotFoundException;
           12   13     8               e  Ljava/lang/Exception;
           19   29     7       signature  [Ljavax/management/MBeanParameterInfo;
           20   29     8  signatureTypes  [Ljava/lang/String;
           21   29     9          values  [Ljava/lang/Object;
           22   28    10               i  I
           24   26    11              pi  Ljavax/management/MBeanParameterInfo;
      Exception table:
        from    to  target  type
           7     8       9  Class javax.management.InstanceNotFoundException
           7     8      11  Class java.lang.Exception
    Exceptions:
      throws javax.management.OperationsException, javax.management.MBeanException, javax.management.ReflectionException
    MethodParameters:
            Name  Flags
      onameStr    
      operation   
      parameters  

  private void output(java.lang.String, java.io.PrintWriter, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/io/PrintWriter;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.apache.catalina.manager.JMXProxyServlet this
        start local 1 // java.lang.String indent
        start local 2 // java.io.PrintWriter writer
        start local 3 // java.lang.Object result
         0: .line 301
            aload 3 /* result */
            instanceof java.lang.Object[]
            ifeq 7
         1: .line 302
            aload 3 /* result */
            checkcast java.lang.Object[]
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 5
      StackMap locals: org.apache.catalina.manager.JMXProxyServlet java.lang.String java.io.PrintWriter java.lang.Object top int int java.lang.Object[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
         3: .line 303
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* indent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* writer */
            aload 4 /* obj */
            invokevirtual org.apache.catalina.manager.JMXProxyServlet.output:(Ljava/lang/String;Ljava/io/PrintWriter;Ljava/lang/Object;)V
        end local 4 // java.lang.Object obj
         4: .line 302
            iinc 5 1
      StackMap locals:
      StackMap stack:
         5: iload 5
            iload 6
            if_icmplt 2
         6: .line 305
            goto 12
         7: .line 307
      StackMap locals: org.apache.catalina.manager.JMXProxyServlet java.lang.String java.io.PrintWriter java.lang.Object
      StackMap stack:
            aload 3 /* result */
            ifnull 10
         8: .line 308
            aload 3 /* result */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 4 /* strValue */
        start local 4 // java.lang.String strValue
         9: .line 309
            goto 11
        end local 4 // java.lang.String strValue
        10: .line 310
      StackMap locals:
      StackMap stack:
            ldc "<null>"
            astore 4 /* strValue */
        start local 4 // java.lang.String strValue
        11: .line 312
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* writer */
            new java.lang.StringBuilder
            dup
            aload 1 /* indent */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* strValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 4 // java.lang.String strValue
        12: .line 314
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object result
        end local 2 // java.io.PrintWriter writer
        end local 1 // java.lang.String indent
        end local 0 // org.apache.catalina.manager.JMXProxyServlet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/apache/catalina/manager/JMXProxyServlet;
            0   13     1    indent  Ljava/lang/String;
            0   13     2    writer  Ljava/io/PrintWriter;
            0   13     3    result  Ljava/lang/Object;
            3    4     4       obj  Ljava/lang/Object;
            9   10     4  strValue  Ljava/lang/String;
           11   12     4  strValue  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      indent  
      writer  
      result  
}
SourceFile: "JMXProxyServlet.java"