final class com.sun.jmx.mbeanserver.ConvertingMethod
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jmx.mbeanserver.ConvertingMethod
  super_class: java.lang.Object
{
  private static final java.lang.String[] noStrings;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.reflect.Method method;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.jmx.mbeanserver.OpenConverter returnConverter;
    descriptor: Lcom/sun/jmx/mbeanserver/OpenConverter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.jmx.mbeanserver.OpenConverter[] paramConverters;
    descriptor: [Lcom/sun/jmx/mbeanserver/OpenConverter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean paramConversionIsIdentity;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 209
            iconst_0
            anewarray java.lang.String
            putstatic com.sun.jmx.mbeanserver.ConvertingMethod.noStrings:[Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static com.sun.jmx.mbeanserver.ConvertingMethod from(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Lcom/sun/jmx/mbeanserver/ConvertingMethod;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.reflect.Method m
         0: .line 41
            new com.sun.jmx.mbeanserver.ConvertingMethod
            dup
            aload 0 /* m */
            invokespecial com.sun.jmx.mbeanserver.ConvertingMethod.<init>:(Ljava/lang/reflect/Method;)V
         1: areturn
         2: .line 42
      StackMap locals:
      StackMap stack: javax.management.openmbean.OpenDataException
            astore 1 /* ode */
        start local 1 // javax.management.openmbean.OpenDataException ode
         3: .line 43
            new java.lang.StringBuilder
            dup
            ldc "Method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 44
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " has parameter or return type that "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 45
            ldc "cannot be translated into an open type"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 43
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         7: .line 46
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* msg */
            aload 1 /* ode */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.String msg
        end local 1 // javax.management.openmbean.OpenDataException ode
        end local 0 // java.lang.reflect.Method m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     m  Ljava/lang/reflect/Method;
            3    8     1   ode  Ljavax/management/openmbean/OpenDataException;
            7    8     2   msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.management.openmbean.OpenDataException
    MethodParameters:
      Name  Flags
      m     

  java.lang.reflect.Method getMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 51
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;

  javax.management.Descriptor getDescriptor();
    descriptor: ()Ljavax/management/Descriptor;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 55
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            invokestatic com.sun.jmx.mbeanserver.Introspector.descriptorForElement:(Ljava/lang/reflect/AnnotatedElement;)Ljavax/management/Descriptor;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;

  java.lang.reflect.Type getGenericReturnType();
    descriptor: ()Ljava/lang/reflect/Type;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 59
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getGenericReturnType:()Ljava/lang/reflect/Type;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;

  java.lang.reflect.Type[] getGenericParameterTypes();
    descriptor: ()[Ljava/lang/reflect/Type;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 63
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;

  java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 67
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;

  javax.management.openmbean.OpenType getOpenReturnType();
    descriptor: ()Ljavax/management/openmbean/OpenType;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 71
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.returnConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.getOpenType:()Ljavax/management/openmbean/OpenType;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;

  javax.management.openmbean.OpenType[] getOpenParameterTypes();
    descriptor: ()[Ljavax/management/openmbean/OpenType;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 75
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            arraylength
            anewarray javax.management.openmbean.OpenType
            astore 1 /* types */
        start local 1 // javax.management.openmbean.OpenType[] types
         1: .line 76
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 77
      StackMap locals: javax.management.openmbean.OpenType[] int
      StackMap stack:
            aload 1 /* types */
            iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 2 /* i */
            aaload
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.getOpenType:()Ljavax/management/openmbean/OpenType;
            aastore
         4: .line 76
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 78
            aload 1 /* types */
            areturn
        end local 1 // javax.management.openmbean.OpenType[] types
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            1    7     1  types  [Ljavax/management/openmbean/OpenType;
            2    6     2      i  I

  void checkCallFromOpen();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 91
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 4
      StackMap locals: com.sun.jmx.mbeanserver.ConvertingMethod top int int com.sun.jmx.mbeanserver.OpenConverter[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* paramConverter */
        start local 1 // com.sun.jmx.mbeanserver.OpenConverter paramConverter
         2: .line 92
            aload 1 /* paramConverter */
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.checkReconstructible:()V
        end local 1 // com.sun.jmx.mbeanserver.OpenConverter paramConverter
         3: .line 91
            iinc 2 1
      StackMap locals:
      StackMap stack:
         4: iload 2
            iload 3
            if_icmplt 1
         5: .line 93
            goto 8
      StackMap locals: com.sun.jmx.mbeanserver.ConvertingMethod
      StackMap stack: java.io.InvalidObjectException
         6: astore 1 /* e */
        start local 1 // java.io.InvalidObjectException e
         7: .line 94
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.InvalidObjectException e
         8: .line 96
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            2    3     1  paramConverter  Lcom/sun/jmx/mbeanserver/OpenConverter;
            7    8     1               e  Ljava/io/InvalidObjectException;
      Exception table:
        from    to  target  type
           0     5       6  Class java.io.InvalidObjectException
    Exceptions:
      throws java.lang.IllegalArgumentException

  void checkCallToOpen();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 108
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.returnConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.checkReconstructible:()V
         1: .line 109
            goto 4
      StackMap locals:
      StackMap stack: java.io.InvalidObjectException
         2: astore 1 /* e */
        start local 1 // java.io.InvalidObjectException e
         3: .line 110
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.InvalidObjectException e
         4: .line 112
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            3    4     1     e  Ljava/io/InvalidObjectException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.InvalidObjectException
    Exceptions:
      throws java.lang.IllegalArgumentException

  java.lang.String[] getOpenSignature();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 115
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            arraylength
            ifne 2
         1: .line 116
            getstatic com.sun.jmx.mbeanserver.ConvertingMethod.noStrings:[Ljava/lang/String;
            areturn
         2: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            arraylength
            anewarray java.lang.String
            astore 1 /* sig */
        start local 1 // java.lang.String[] sig
         3: .line 119
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 120
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 1 /* sig */
            iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 2 /* i */
            aaload
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.getOpenClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         6: .line 119
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            arraylength
            if_icmplt 5
        end local 2 // int i
         8: .line 121
            aload 1 /* sig */
            areturn
        end local 1 // java.lang.String[] sig
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            3    9     1   sig  [Ljava/lang/String;
            4    8     2     i  I

  final java.lang.Object toOpenReturnValue(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object ret
         0: .line 126
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.returnConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            aload 1 /* lookup */
            aload 2 /* ret */
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.toOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object ret
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0    1     1  lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0    1     2     ret  Ljava/lang/Object;
    Exceptions:
      throws javax.management.openmbean.OpenDataException
    MethodParameters:
        Name  Flags
      lookup  
      ret     

  final java.lang.Object fromOpenReturnValue(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object ret
         0: .line 131
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.returnConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            aload 1 /* lookup */
            aload 2 /* ret */
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.fromOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object ret
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0    1     1  lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0    1     2     ret  Ljava/lang/Object;
    Exceptions:
      throws java.io.InvalidObjectException
    MethodParameters:
        Name  Flags
      lookup  
      ret     

  final java.lang.Object[] toOpenParameters(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object[]);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object[] params
         0: .line 136
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConversionIsIdentity:Z
            ifne 1
            aload 2 /* params */
            ifnonnull 2
         1: .line 137
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            areturn
         2: .line 138
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            arraylength
            anewarray java.lang.Object
            astore 3 /* oparams */
        start local 3 // java.lang.Object[] oparams
         3: .line 139
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 140
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 3 /* oparams */
            iload 4 /* i */
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 4 /* i */
            aaload
            aload 1 /* lookup */
            aload 2 /* params */
            iload 4 /* i */
            aaload
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.toOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         6: .line 139
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 2 /* params */
            arraylength
            if_icmplt 5
        end local 4 // int i
         8: .line 141
            aload 3 /* oparams */
            areturn
        end local 3 // java.lang.Object[] oparams
        end local 2 // java.lang.Object[] params
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0    9     1   lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0    9     2   params  [Ljava/lang/Object;
            3    9     3  oparams  [Ljava/lang/Object;
            4    8     4        i  I
    Exceptions:
      throws javax.management.openmbean.OpenDataException
    MethodParameters:
        Name  Flags
      lookup  
      params  

  final java.lang.Object[] fromOpenParameters(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object[]);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object[] params
         0: .line 146
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConversionIsIdentity:Z
            ifne 1
            aload 2 /* params */
            ifnonnull 2
         1: .line 147
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            areturn
         2: .line 148
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            arraylength
            anewarray java.lang.Object
            astore 3 /* jparams */
        start local 3 // java.lang.Object[] jparams
         3: .line 149
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 150
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 3 /* jparams */
            iload 4 /* i */
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 4 /* i */
            aaload
            aload 1 /* lookup */
            aload 2 /* params */
            iload 4 /* i */
            aaload
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.fromOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
            aastore
         6: .line 149
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 2 /* params */
            arraylength
            if_icmplt 5
        end local 4 // int i
         8: .line 151
            aload 3 /* jparams */
            areturn
        end local 3 // java.lang.Object[] jparams
        end local 2 // java.lang.Object[] params
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0    9     1   lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0    9     2   params  [Ljava/lang/Object;
            3    9     3  jparams  [Ljava/lang/Object;
            4    8     4        i  I
    Exceptions:
      throws java.io.InvalidObjectException
    MethodParameters:
        Name  Flags
      lookup  
      params  

  final java.lang.Object toOpenParameter(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object, int);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object param
        start local 3 // int paramNo
         0: .line 158
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 3 /* paramNo */
            aaload
            aload 1 /* lookup */
            aload 2 /* param */
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.toOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // int paramNo
        end local 2 // java.lang.Object param
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0    1     1   lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0    1     2    param  Ljava/lang/Object;
            0    1     3  paramNo  I
    Exceptions:
      throws javax.management.openmbean.OpenDataException
    MethodParameters:
         Name  Flags
      lookup   
      param    
      paramNo  

  final java.lang.Object fromOpenParameter(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object, int);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object param
        start local 3 // int paramNo
         0: .line 165
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 3 /* paramNo */
            aaload
            aload 1 /* lookup */
            aload 2 /* param */
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.fromOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // int paramNo
        end local 2 // java.lang.Object param
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0    1     1   lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0    1     2    param  Ljava/lang/Object;
            0    1     3  paramNo  I
    Exceptions:
      throws java.io.InvalidObjectException
    MethodParameters:
         Name  Flags
      lookup   
      param    
      paramNo  

  java.lang.Object invokeWithOpenReturn(com.sun.jmx.mbeanserver.MXBeanLookup, java.lang.Object, java.lang.Object[]);
    descriptor: (Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        start local 2 // java.lang.Object obj
        start local 3 // java.lang.Object[] params
         0: .line 174
            aload 0 /* this */
            aload 1 /* lookup */
            aload 3 /* params */
            invokevirtual com.sun.jmx.mbeanserver.ConvertingMethod.fromOpenParameters:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;[Ljava/lang/Object;)[Ljava/lang/Object;
            astore 4 /* javaParams */
        start local 4 // java.lang.Object[] javaParams
         1: .line 175
            goto 7
        end local 4 // java.lang.Object[] javaParams
      StackMap locals:
      StackMap stack: java.io.InvalidObjectException
         2: astore 5 /* e */
        start local 5 // java.io.InvalidObjectException e
         3: .line 177
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.sun.jmx.mbeanserver.ConvertingMethod.methodName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot convert parameters "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 178
            ldc "from open values: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         5: .line 177
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
         6: .line 179
            new javax.management.MBeanException
            dup
            aload 5 /* e */
            aload 6 /* msg */
            invokespecial javax.management.MBeanException.<init>:(Ljava/lang/Exception;Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String msg
        end local 5 // java.io.InvalidObjectException e
        start local 4 // java.lang.Object[] javaParams
         7: .line 181
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            aload 2 /* obj */
            aload 4 /* javaParams */
            invokestatic sun.reflect.misc.MethodUtil.invoke:(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* javaReturn */
        start local 5 // java.lang.Object javaReturn
         8: .line 183
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.returnConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
            aload 1 /* lookup */
            aload 5 /* javaReturn */
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.toOpenValue:(Lcom/sun/jmx/mbeanserver/MXBeanLookup;Ljava/lang/Object;)Ljava/lang/Object;
         9: areturn
        10: .line 184
      StackMap locals: com.sun.jmx.mbeanserver.ConvertingMethod com.sun.jmx.mbeanserver.MXBeanLookup java.lang.Object java.lang.Object[] java.lang.Object[] java.lang.Object
      StackMap stack: javax.management.openmbean.OpenDataException
            astore 6 /* e */
        start local 6 // javax.management.openmbean.OpenDataException e
        11: .line 186
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.sun.jmx.mbeanserver.ConvertingMethod.methodName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot convert return "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 187
            ldc "value to open value: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 186
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
        14: .line 188
            new javax.management.MBeanException
            dup
            aload 6 /* e */
            aload 7 /* msg */
            invokespecial javax.management.MBeanException.<init>:(Ljava/lang/Exception;Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String msg
        end local 6 // javax.management.openmbean.OpenDataException e
        end local 5 // java.lang.Object javaReturn
        end local 4 // java.lang.Object[] javaParams
        end local 3 // java.lang.Object[] params
        end local 2 // java.lang.Object obj
        end local 1 // com.sun.jmx.mbeanserver.MXBeanLookup lookup
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0   15     1      lookup  Lcom/sun/jmx/mbeanserver/MXBeanLookup;
            0   15     2         obj  Ljava/lang/Object;
            0   15     3      params  [Ljava/lang/Object;
            1    2     4  javaParams  [Ljava/lang/Object;
            7   15     4  javaParams  [Ljava/lang/Object;
            3    7     5           e  Ljava/io/InvalidObjectException;
            6    7     6         msg  Ljava/lang/String;
            8   15     5  javaReturn  Ljava/lang/Object;
           11   15     6           e  Ljavax/management/openmbean/OpenDataException;
           14   15     7         msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.InvalidObjectException
           8     9      10  Class javax.management.openmbean.OpenDataException
    Exceptions:
      throws javax.management.MBeanException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
    MethodParameters:
        Name  Flags
      lookup  
      obj     
      params  

  private java.lang.String methodName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
         0: .line 193
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;

  private void <init>(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
        start local 1 // java.lang.reflect.Method m
         0: .line 196
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 197
            aload 0 /* this */
            aload 1 /* m */
            putfield com.sun.jmx.mbeanserver.ConvertingMethod.method:Ljava/lang/reflect/Method;
         2: .line 198
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getGenericReturnType:()Ljava/lang/reflect/Type;
            invokestatic com.sun.jmx.mbeanserver.OpenConverter.toConverter:(Ljava/lang/reflect/Type;)Lcom/sun/jmx/mbeanserver/OpenConverter;
            putfield com.sun.jmx.mbeanserver.ConvertingMethod.returnConverter:Lcom/sun/jmx/mbeanserver/OpenConverter;
         3: .line 199
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getGenericParameterTypes:()[Ljava/lang/reflect/Type;
            astore 2 /* params */
        start local 2 // java.lang.reflect.Type[] params
         4: .line 200
            aload 0 /* this */
            aload 2 /* params */
            arraylength
            anewarray com.sun.jmx.mbeanserver.OpenConverter
            putfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
         5: .line 201
            iconst_1
            istore 3 /* identity */
        start local 3 // boolean identity
         6: .line 202
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 11
         8: .line 203
      StackMap locals: com.sun.jmx.mbeanserver.ConvertingMethod java.lang.reflect.Method java.lang.reflect.Type[] int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 4 /* i */
            aload 2 /* params */
            iload 4 /* i */
            aaload
            invokestatic com.sun.jmx.mbeanserver.OpenConverter.toConverter:(Ljava/lang/reflect/Type;)Lcom/sun/jmx/mbeanserver/OpenConverter;
            aastore
         9: .line 204
            iload 3 /* identity */
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConverters:[Lcom/sun/jmx/mbeanserver/OpenConverter;
            iload 4 /* i */
            aaload
            invokevirtual com.sun.jmx.mbeanserver.OpenConverter.isIdentity:()Z
            iand
            istore 3 /* identity */
        10: .line 202
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 2 /* params */
            arraylength
            if_icmplt 8
        end local 4 // int i
        12: .line 206
            aload 0 /* this */
            iload 3 /* identity */
            putfield com.sun.jmx.mbeanserver.ConvertingMethod.paramConversionIsIdentity:Z
        13: .line 207
            return
        end local 3 // boolean identity
        end local 2 // java.lang.reflect.Type[] params
        end local 1 // java.lang.reflect.Method m
        end local 0 // com.sun.jmx.mbeanserver.ConvertingMethod this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lcom/sun/jmx/mbeanserver/ConvertingMethod;
            0   14     1         m  Ljava/lang/reflect/Method;
            4   14     2    params  [Ljava/lang/reflect/Type;
            6   14     3  identity  Z
            7   12     4         i  I
    Exceptions:
      throws javax.management.openmbean.OpenDataException
    MethodParameters:
      Name  Flags
      m     
}
SourceFile: "ConvertingMethod.java"