final class com.sun.jmx.mbeanserver.PerInterface<M>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jmx.mbeanserver.PerInterface
  super_class: java.lang.Object
{
  private final java.lang.Class<?> mbeanInterface;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final com.sun.jmx.mbeanserver.MBeanIntrospector<M> introspector;
    descriptor: Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/jmx/mbeanserver/MBeanIntrospector<TM;>;

  private final javax.management.MBeanInfo mbeanInfo;
    descriptor: Ljavax/management/MBeanInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, M> getters;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;TM;>;

  private final java.util.Map<java.lang.String, M> setters;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;TM;>;

  private final java.util.Map<java.lang.String, java.util.List<com.sun.jmx.mbeanserver.PerInterface<M>.MethodAndSig>> ops;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lcom/sun/jmx/mbeanserver/PerInterface<TM;>.MethodAndSig;>;>;

  void <init>(java.lang.Class<?>, com.sun.jmx.mbeanserver.MBeanIntrospector<M>, com.sun.jmx.mbeanserver.MBeanAnalyzer<M>, javax.management.MBeanInfo);
    descriptor: (Ljava/lang/Class;Lcom/sun/jmx/mbeanserver/MBeanIntrospector;Lcom/sun/jmx/mbeanserver/MBeanAnalyzer;Ljavax/management/MBeanInfo;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
        start local 1 // java.lang.Class mbeanInterface
        start local 2 // com.sun.jmx.mbeanserver.MBeanIntrospector introspector
        start local 3 // com.sun.jmx.mbeanserver.MBeanAnalyzer analyzer
        start local 4 // javax.management.MBeanInfo mbeanInfo
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 277
            aload 0 /* this */
            invokestatic com.sun.jmx.mbeanserver.Util.newMap:()Ljava/util/Map;
            putfield com.sun.jmx.mbeanserver.PerInterface.getters:Ljava/util/Map;
         2: .line 278
            aload 0 /* this */
            invokestatic com.sun.jmx.mbeanserver.Util.newMap:()Ljava/util/Map;
            putfield com.sun.jmx.mbeanserver.PerInterface.setters:Ljava/util/Map;
         3: .line 279
            aload 0 /* this */
            invokestatic com.sun.jmx.mbeanserver.Util.newMap:()Ljava/util/Map;
            putfield com.sun.jmx.mbeanserver.PerInterface.ops:Ljava/util/Map;
         4: .line 51
            aload 0 /* this */
            aload 1 /* mbeanInterface */
            putfield com.sun.jmx.mbeanserver.PerInterface.mbeanInterface:Ljava/lang/Class;
         5: .line 52
            aload 0 /* this */
            aload 2 /* introspector */
            putfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
         6: .line 53
            aload 0 /* this */
            aload 4 /* mbeanInfo */
            putfield com.sun.jmx.mbeanserver.PerInterface.mbeanInfo:Ljavax/management/MBeanInfo;
         7: .line 54
            aload 3 /* analyzer */
            new com.sun.jmx.mbeanserver.PerInterface$InitMaps
            dup
            aload 0 /* this */
            invokespecial com.sun.jmx.mbeanserver.PerInterface$InitMaps.<init>:(Lcom/sun/jmx/mbeanserver/PerInterface;)V
            invokevirtual com.sun.jmx.mbeanserver.MBeanAnalyzer.visit:(Lcom/sun/jmx/mbeanserver/MBeanAnalyzer$MBeanVisitor;)V
         8: .line 55
            return
        end local 4 // javax.management.MBeanInfo mbeanInfo
        end local 3 // com.sun.jmx.mbeanserver.MBeanAnalyzer analyzer
        end local 2 // com.sun.jmx.mbeanserver.MBeanIntrospector introspector
        end local 1 // java.lang.Class mbeanInterface
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;
            0    9     1  mbeanInterface  Ljava/lang/Class<*>;
            0    9     2    introspector  Lcom/sun/jmx/mbeanserver/MBeanIntrospector<TM;>;
            0    9     3        analyzer  Lcom/sun/jmx/mbeanserver/MBeanAnalyzer<TM;>;
            0    9     4       mbeanInfo  Ljavax/management/MBeanInfo;
    Signature: (Ljava/lang/Class<*>;Lcom/sun/jmx/mbeanserver/MBeanIntrospector<TM;>;Lcom/sun/jmx/mbeanserver/MBeanAnalyzer<TM;>;Ljavax/management/MBeanInfo;)V
    MethodParameters:
                Name  Flags
      mbeanInterface  
      introspector    
      analyzer        
      mbeanInfo       

  java.lang.Class<?> getMBeanInterface();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
         0: .line 58
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.mbeanInterface:Ljava/lang/Class;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;
    Signature: ()Ljava/lang/Class<*>;

  javax.management.MBeanInfo getMBeanInfo();
    descriptor: ()Ljavax/management/MBeanInfo;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
         0: .line 62
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.mbeanInfo:Ljavax/management/MBeanInfo;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;

  boolean isMXBean();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
         0: .line 66
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.isMXBean:()Z
            ireturn
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;

  java.lang.Object getAttribute(java.lang.Object, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
        start local 1 // java.lang.Object resource
        start local 2 // java.lang.String attribute
        start local 3 // java.lang.Object cookie
         0: .line 74
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.getters:Ljava/util/Map;
            aload 2 /* attribute */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* cm */
        start local 4 // java.lang.Object cm
         1: .line 75
            aload 4 /* cm */
            ifnonnull 7
         2: .line 77
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.setters:Ljava/util/Map;
            aload 2 /* attribute */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 78
            new java.lang.StringBuilder
            dup
            ldc "Write-only attribute: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* attribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         4: goto 6
        end local 5 // java.lang.String msg
         5: .line 80
      StackMap locals: java.lang.Object
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "No such attribute: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* attribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         6: .line 81
      StackMap locals: java.lang.String
      StackMap stack:
            new javax.management.AttributeNotFoundException
            dup
            aload 5 /* msg */
            invokespecial javax.management.AttributeNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String msg
         7: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            aload 4 /* cm */
            aload 1 /* resource */
            aconst_null
            aload 3 /* cookie */
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object cm
        end local 3 // java.lang.Object cookie
        end local 2 // java.lang.String attribute
        end local 1 // java.lang.Object resource
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;
            0    8     1   resource  Ljava/lang/Object;
            0    8     2  attribute  Ljava/lang/String;
            0    8     3     cookie  Ljava/lang/Object;
            1    8     4         cm  TM;
            4    5     5        msg  Ljava/lang/String;
            6    7     5        msg  Ljava/lang/String;
    Exceptions:
      throws javax.management.AttributeNotFoundException, javax.management.MBeanException, javax.management.ReflectionException
    MethodParameters:
           Name  Flags
      resource   
      attribute  
      cookie     

  void setAttribute(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
        start local 1 // java.lang.Object resource
        start local 2 // java.lang.String attribute
        start local 3 // java.lang.Object value
        start local 4 // java.lang.Object cookie
         0: .line 93
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.setters:Ljava/util/Map;
            aload 2 /* attribute */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* cm */
        start local 5 // java.lang.Object cm
         1: .line 94
            aload 5 /* cm */
            ifnonnull 7
         2: .line 96
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.getters:Ljava/util/Map;
            aload 2 /* attribute */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 97
            new java.lang.StringBuilder
            dup
            ldc "Read-only attribute: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* attribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
         4: goto 6
        end local 6 // java.lang.String msg
         5: .line 99
      StackMap locals: java.lang.Object
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "No such attribute: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* attribute */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
         6: .line 100
      StackMap locals: java.lang.String
      StackMap stack:
            new javax.management.AttributeNotFoundException
            dup
            aload 6 /* msg */
            invokespecial javax.management.AttributeNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String msg
         7: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            aload 2 /* attribute */
            aload 5 /* cm */
            aload 1 /* resource */
            aload 3 /* value */
            aload 4 /* cookie */
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.invokeSetter:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 103
            return
        end local 5 // java.lang.Object cm
        end local 4 // java.lang.Object cookie
        end local 3 // java.lang.Object value
        end local 2 // java.lang.String attribute
        end local 1 // java.lang.Object resource
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;
            0    9     1   resource  Ljava/lang/Object;
            0    9     2  attribute  Ljava/lang/String;
            0    9     3      value  Ljava/lang/Object;
            0    9     4     cookie  Ljava/lang/Object;
            1    9     5         cm  TM;
            4    5     6        msg  Ljava/lang/String;
            6    7     6        msg  Ljava/lang/String;
    Exceptions:
      throws javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException
    MethodParameters:
           Name  Flags
      resource   
      attribute  
      value      
      cookie     

  java.lang.Object invoke(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.String[], java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=7, locals=10, args_size=6
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
        start local 1 // java.lang.Object resource
        start local 2 // java.lang.String operation
        start local 3 // java.lang.Object[] params
        start local 4 // java.lang.String[] signature
        start local 5 // java.lang.Object cookie
         0: .line 109
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.ops:Ljava/util/Map;
            aload 2 /* operation */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 6 /* list */
        start local 6 // java.util.List list
         1: .line 110
            aload 6 /* list */
            ifnonnull 6
         2: .line 111
            new java.lang.StringBuilder
            dup
            ldc "No such operation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* operation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
         3: .line 112
            aload 0 /* this */
            aload 7 /* msg */
            aload 1 /* resource */
            aload 2 /* operation */
            aload 3 /* params */
            aload 4 /* signature */
         4: .line 113
            aload 5 /* cookie */
         5: .line 112
            invokevirtual com.sun.jmx.mbeanserver.PerInterface.noSuchMethod:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // java.lang.String msg
         6: .line 115
      StackMap locals: java.util.List
      StackMap stack:
            aload 4 /* signature */
            ifnonnull 8
         7: .line 116
            iconst_0
            anewarray java.lang.String
            astore 4 /* signature */
         8: .line 117
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* found */
        start local 7 // com.sun.jmx.mbeanserver.PerInterface$MethodAndSig found
         9: .line 118
            aload 6 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 14
      StackMap locals: com.sun.jmx.mbeanserver.PerInterface java.lang.Object java.lang.String java.lang.Object[] java.lang.String[] java.lang.Object java.util.List com.sun.jmx.mbeanserver.PerInterface$MethodAndSig top java.util.Iterator
      StackMap stack:
        10: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.jmx.mbeanserver.PerInterface$MethodAndSig
            astore 8 /* mas */
        start local 8 // com.sun.jmx.mbeanserver.PerInterface$MethodAndSig mas
        11: .line 119
            aload 8 /* mas */
            getfield com.sun.jmx.mbeanserver.PerInterface$MethodAndSig.signature:[Ljava/lang/String;
            aload 4 /* signature */
            invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 14
        12: .line 120
            aload 8 /* mas */
            astore 7 /* found */
        13: .line 121
            goto 15
        end local 8 // com.sun.jmx.mbeanserver.PerInterface$MethodAndSig mas
        14: .line 118
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        15: .line 124
      StackMap locals: com.sun.jmx.mbeanserver.PerInterface java.lang.Object java.lang.String java.lang.Object[] java.lang.String[] java.lang.Object java.util.List com.sun.jmx.mbeanserver.PerInterface$MethodAndSig
      StackMap stack:
            aload 7 /* found */
            ifnonnull 29
        16: .line 125
            aload 0 /* this */
            aload 4 /* signature */
            invokevirtual com.sun.jmx.mbeanserver.PerInterface.sigString:([Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* badSig */
        start local 8 // java.lang.String badSig
        17: .line 127
            aload 6 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 23
        18: .line 128
            new java.lang.StringBuilder
            dup
            ldc "Signature mismatch for operation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* operation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 129
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* badSig */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " should be "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 130
            aload 0 /* this */
            aload 6 /* list */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.jmx.mbeanserver.PerInterface$MethodAndSig
            getfield com.sun.jmx.mbeanserver.PerInterface$MethodAndSig.signature:[Ljava/lang/String;
            invokevirtual com.sun.jmx.mbeanserver.PerInterface.sigString:([Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 128
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* msg */
        start local 9 // java.lang.String msg
        22: .line 131
            goto 26
        end local 9 // java.lang.String msg
        23: .line 132
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Operation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* operation */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " exists but not with "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 133
            ldc "this signature: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* badSig */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 132
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* msg */
        start local 9 // java.lang.String msg
        26: .line 135
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 9 /* msg */
            aload 1 /* resource */
            aload 2 /* operation */
            aload 3 /* params */
            aload 4 /* signature */
        27: .line 136
            aload 5 /* cookie */
        28: .line 135
            invokevirtual com.sun.jmx.mbeanserver.PerInterface.noSuchMethod:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 9 // java.lang.String msg
        end local 8 // java.lang.String badSig
        29: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            aload 7 /* found */
            getfield com.sun.jmx.mbeanserver.PerInterface$MethodAndSig.method:Ljava/lang/Object;
            aload 1 /* resource */
            aload 3 /* params */
            aload 5 /* cookie */
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // com.sun.jmx.mbeanserver.PerInterface$MethodAndSig found
        end local 6 // java.util.List list
        end local 5 // java.lang.Object cookie
        end local 4 // java.lang.String[] signature
        end local 3 // java.lang.Object[] params
        end local 2 // java.lang.String operation
        end local 1 // java.lang.Object resource
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   30     0       this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;
            0   30     1   resource  Ljava/lang/Object;
            0   30     2  operation  Ljava/lang/String;
            0   30     3     params  [Ljava/lang/Object;
            0   30     4  signature  [Ljava/lang/String;
            0   30     5     cookie  Ljava/lang/Object;
            1   30     6       list  Ljava/util/List<Lcom/sun/jmx/mbeanserver/PerInterface<TM;>.MethodAndSig;>;
            3    6     7        msg  Ljava/lang/String;
            9   30     7      found  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>.MethodAndSig;
           11   14     8        mas  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>.MethodAndSig;
           17   29     8     badSig  Ljava/lang/String;
           22   23     9        msg  Ljava/lang/String;
           26   29     9        msg  Ljava/lang/String;
    Exceptions:
      throws javax.management.MBeanException, javax.management.ReflectionException
    MethodParameters:
           Name  Flags
      resource   
      operation  
      params     
      signature  
      cookie     

  private java.lang.Object noSuchMethod(java.lang.String, java.lang.Object, java.lang.String, java.lang.Object[], java.lang.String[], java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=7
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
        start local 1 // java.lang.String msg
        start local 2 // java.lang.Object resource
        start local 3 // java.lang.String operation
        start local 4 // java.lang.Object[] params
        start local 5 // java.lang.String[] signature
        start local 6 // java.lang.Object cookie
         0: .line 169
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            aload 3 /* operation */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 5 /* signature */
            invokevirtual com.sun.jmx.mbeanserver.PerInterface.sigString:([Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
         1: .line 168
            astore 7 /* nsme */
        start local 7 // java.lang.NoSuchMethodException nsme
         2: .line 171
            new javax.management.ReflectionException
            dup
            aload 7 /* nsme */
            aload 1 /* msg */
            invokespecial javax.management.ReflectionException.<init>:(Ljava/lang/Exception;Ljava/lang/String;)V
         3: .line 170
            astore 8 /* exception */
        start local 8 // javax.management.ReflectionException exception
         4: .line 173
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.isMXBean:()Z
            ifeq 6
         5: .line 174
            aload 8 /* exception */
            athrow
         6: .line 177
      StackMap locals: java.lang.NoSuchMethodException javax.management.ReflectionException
      StackMap stack:
            new com.sun.jmx.mbeanserver.GetPropertyAction
            dup
            ldc "jmx.invoke.getters"
            invokespecial com.sun.jmx.mbeanserver.GetPropertyAction.<init>:(Ljava/lang/String;)V
            astore 9 /* act */
        start local 9 // com.sun.jmx.mbeanserver.GetPropertyAction act
         7: .line 180
            aload 9 /* act */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* invokeGettersS */
        start local 10 // java.lang.String invokeGettersS
         8: .line 181
            goto 11
        end local 10 // java.lang.String invokeGettersS
      StackMap locals: com.sun.jmx.mbeanserver.PerInterface java.lang.String java.lang.Object java.lang.String java.lang.Object[] java.lang.String[] java.lang.Object java.lang.NoSuchMethodException javax.management.ReflectionException com.sun.jmx.mbeanserver.GetPropertyAction
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 184
            aconst_null
            astore 10 /* invokeGettersS */
        start local 10 // java.lang.String invokeGettersS
        11: .line 186
      StackMap locals: java.lang.String
      StackMap stack:
            aload 10 /* invokeGettersS */
            ifnonnull 13
        12: .line 187
            aload 8 /* exception */
            athrow
        13: .line 189
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* rest */
        start local 11 // int rest
        14: .line 190
            aconst_null
            astore 12 /* methods */
        start local 12 // java.util.Map methods
        15: .line 191
            aload 5 /* signature */
            ifnull 16
            aload 5 /* signature */
            arraylength
            ifne 23
        16: .line 192
      StackMap locals: int java.util.Map
      StackMap stack:
            aload 3 /* operation */
            ldc "get"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 18
        17: .line 193
            iconst_3
            istore 11 /* rest */
            goto 20
        18: .line 194
      StackMap locals:
      StackMap stack:
            aload 3 /* operation */
            ldc "is"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 20
        19: .line 195
            iconst_2
            istore 11 /* rest */
        20: .line 196
      StackMap locals:
      StackMap stack:
            iload 11 /* rest */
            ifeq 27
        21: .line 197
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.getters:Ljava/util/Map;
            astore 12 /* methods */
        22: .line 198
            goto 27
      StackMap locals:
      StackMap stack:
        23: aload 5 /* signature */
            arraylength
            iconst_1
            if_icmpne 27
        24: .line 199
            aload 3 /* operation */
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 27
        25: .line 200
            iconst_3
            istore 11 /* rest */
        26: .line 201
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.setters:Ljava/util/Map;
            astore 12 /* methods */
        27: .line 204
      StackMap locals:
      StackMap stack:
            iload 11 /* rest */
            ifeq 35
        28: .line 205
            aload 3 /* operation */
            iload 11 /* rest */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 13 /* attrName */
        start local 13 // java.lang.String attrName
        29: .line 206
            aload 12 /* methods */
            aload 13 /* attrName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 14 /* method */
        start local 14 // java.lang.Object method
        30: .line 207
            aload 14 /* method */
            ifnull 35
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            aload 14 /* method */
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.getName:(Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* operation */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
        31: .line 208
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            aload 14 /* method */
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.getSignature:(Ljava/lang/Object;)[Ljava/lang/String;
            astore 15 /* msig */
        start local 15 // java.lang.String[] msig
        32: .line 209
            aload 5 /* signature */
            ifnonnull 33
            aload 15 /* msig */
            arraylength
            ifeq 34
        33: .line 210
      StackMap locals: java.lang.String java.lang.Object java.lang.String[]
      StackMap stack:
            aload 5 /* signature */
            aload 15 /* msig */
            invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 35
        34: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.PerInterface.introspector:Lcom/sun/jmx/mbeanserver/MBeanIntrospector;
            aload 14 /* method */
            aload 2 /* resource */
            aload 4 /* params */
            aload 6 /* cookie */
            invokevirtual com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 15 // java.lang.String[] msig
        end local 14 // java.lang.Object method
        end local 13 // java.lang.String attrName
        35: .line 216
      StackMap locals:
      StackMap stack:
            aload 8 /* exception */
            athrow
        end local 12 // java.util.Map methods
        end local 11 // int rest
        end local 10 // java.lang.String invokeGettersS
        end local 9 // com.sun.jmx.mbeanserver.GetPropertyAction act
        end local 8 // javax.management.ReflectionException exception
        end local 7 // java.lang.NoSuchMethodException nsme
        end local 6 // java.lang.Object cookie
        end local 5 // java.lang.String[] signature
        end local 4 // java.lang.Object[] params
        end local 3 // java.lang.String operation
        end local 2 // java.lang.Object resource
        end local 1 // java.lang.String msg
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   36     0            this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;
            0   36     1             msg  Ljava/lang/String;
            0   36     2        resource  Ljava/lang/Object;
            0   36     3       operation  Ljava/lang/String;
            0   36     4          params  [Ljava/lang/Object;
            0   36     5       signature  [Ljava/lang/String;
            0   36     6          cookie  Ljava/lang/Object;
            2   36     7            nsme  Ljava/lang/NoSuchMethodException;
            4   36     8       exception  Ljavax/management/ReflectionException;
            7   36     9             act  Lcom/sun/jmx/mbeanserver/GetPropertyAction;
            8    9    10  invokeGettersS  Ljava/lang/String;
           11   36    10  invokeGettersS  Ljava/lang/String;
           14   36    11            rest  I
           15   36    12         methods  Ljava/util/Map<Ljava/lang/String;TM;>;
           29   35    13        attrName  Ljava/lang/String;
           30   35    14          method  TM;
           32   35    15            msig  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.Exception
    Exceptions:
      throws javax.management.MBeanException, javax.management.ReflectionException
    MethodParameters:
           Name  Flags
      msg        
      resource   
      operation  
      params     
      signature  
      cookie     

  private java.lang.String sigString(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.sun.jmx.mbeanserver.PerInterface this
        start local 1 // java.lang.String[] signature
         0: .line 220
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* b */
        start local 2 // java.lang.StringBuilder b
         1: .line 221
            aload 1 /* signature */
            ifnull 9
         2: .line 222
            aload 1 /* signature */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: com.sun.jmx.mbeanserver.PerInterface java.lang.String[] java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* s */
        start local 3 // java.lang.String s
         4: .line 223
            aload 2 /* b */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            if_icmple 6
         5: .line 224
            aload 2 /* b */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 225
      StackMap locals: com.sun.jmx.mbeanserver.PerInterface java.lang.String[] java.lang.StringBuilder java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 2 /* b */
            aload 3 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String s
         7: .line 222
            iinc 4 1
      StackMap locals: com.sun.jmx.mbeanserver.PerInterface java.lang.String[] java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 3
         9: .line 228
      StackMap locals: com.sun.jmx.mbeanserver.PerInterface java.lang.String[] java.lang.StringBuilder
      StackMap stack:
            aload 2 /* b */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder b
        end local 1 // java.lang.String[] signature
        end local 0 // com.sun.jmx.mbeanserver.PerInterface this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/sun/jmx/mbeanserver/PerInterface<TM;>;
            0   10     1  signature  [Ljava/lang/String;
            1   10     2          b  Ljava/lang/StringBuilder;
            4    7     3          s  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      signature  
}
Signature: <M:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "PerInterface.java"
NestMembers:
  com.sun.jmx.mbeanserver.PerInterface$InitMaps  com.sun.jmx.mbeanserver.PerInterface$MethodAndSig
InnerClasses:
  abstract MBeanVisitor = com.sun.jmx.mbeanserver.MBeanAnalyzer$MBeanVisitor of com.sun.jmx.mbeanserver.MBeanAnalyzer
  private InitMaps = com.sun.jmx.mbeanserver.PerInterface$InitMaps of com.sun.jmx.mbeanserver.PerInterface
  private MethodAndSig = com.sun.jmx.mbeanserver.PerInterface$MethodAndSig of com.sun.jmx.mbeanserver.PerInterface