public class java.beans.MethodDescriptor extends java.beans.FeatureDescriptor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.beans.MethodDescriptor
  super_class: java.beans.FeatureDescriptor
{
  private java.lang.ref.Reference<java.lang.reflect.Method> methodRef;
    descriptor: Ljava/lang/ref/Reference;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/lang/ref/Reference<Ljava/lang/reflect/Method;>;

  private java.lang.String[] paramNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List params;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE

  private java.beans.ParameterDescriptor[] parameterDescriptors;
    descriptor: [Ljava/beans/ParameterDescriptor;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.beans.MethodDescriptor this
        start local 1 // java.lang.reflect.Method method
         0: .line 58
            aload 0 /* this */
            aload 1 /* method */
            aconst_null
            invokespecial java.beans.MethodDescriptor.<init>:(Ljava/lang/reflect/Method;[Ljava/beans/ParameterDescriptor;)V
         1: .line 59
            return
        end local 1 // java.lang.reflect.Method method
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/beans/MethodDescriptor;
            0    2     1  method  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      method  

  public void <init>(java.lang.reflect.Method, java.beans.ParameterDescriptor[]);
    descriptor: (Ljava/lang/reflect/Method;[Ljava/beans/ParameterDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.beans.MethodDescriptor this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.beans.ParameterDescriptor[] parameterDescriptors
         0: .line 71
            aload 0 /* this */
            invokespecial java.beans.FeatureDescriptor.<init>:()V
         1: .line 73
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.beans.MethodDescriptor.setName:(Ljava/lang/String;)V
         2: .line 74
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual java.beans.MethodDescriptor.setMethod:(Ljava/lang/reflect/Method;)V
         3: .line 75
            aload 0 /* this */
            aload 2 /* parameterDescriptors */
            putfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
         4: .line 76
            return
        end local 2 // java.beans.ParameterDescriptor[] parameterDescriptors
        end local 1 // java.lang.reflect.Method method
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    5     0                  this  Ljava/beans/MethodDescriptor;
            0    5     1                method  Ljava/lang/reflect/Method;
            0    5     2  parameterDescriptors  [Ljava/beans/ParameterDescriptor;
    MethodParameters:
                      Name  Flags
      method                
      parameterDescriptors  

  public synchronized java.lang.reflect.Method getMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.beans.MethodDescriptor this
         0: .line 84
            aload 0 /* this */
            invokevirtual java.beans.MethodDescriptor.getMethod0:()Ljava/lang/reflect/Method;
            astore 1 /* method */
        start local 1 // java.lang.reflect.Method method
         1: .line 85
            aload 1 /* method */
            ifnonnull 18
         2: .line 86
            aload 0 /* this */
            invokevirtual java.beans.MethodDescriptor.getClass0:()Ljava/lang/Class;
            astore 2 /* cls */
        start local 2 // java.lang.Class cls
         3: .line 87
            aload 2 /* cls */
            ifnull 18
         4: .line 88
            aload 0 /* this */
            invokevirtual java.beans.MethodDescriptor.getParams:()[Ljava/lang/Class;
            astore 3 /* params */
        start local 3 // java.lang.Class[] params
         5: .line 89
            aload 3 /* params */
            ifnonnull 14
         6: .line 90
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 12
         8: .line 94
      StackMap locals: java.beans.MethodDescriptor java.lang.reflect.Method java.lang.Class java.lang.Class[] int
      StackMap stack:
            aload 2 /* cls */
            aload 0 /* this */
            invokevirtual java.beans.MethodDescriptor.getName:()Ljava/lang/String;
            iload 4 /* i */
            aconst_null
            invokestatic java.beans.Introspector.findMethod:(Ljava/lang/Class;Ljava/lang/String;I[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 1 /* method */
         9: .line 95
            aload 1 /* method */
            ifnull 11
        10: .line 96
            goto 17
        11: .line 90
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            iconst_3
            if_icmplt 8
        end local 4 // int i
        13: .line 99
            goto 17
        14: .line 100
      StackMap locals:
      StackMap stack:
            aload 2 /* cls */
            aload 0 /* this */
            invokevirtual java.beans.MethodDescriptor.getName:()Ljava/lang/String;
        15: .line 101
            aload 3 /* params */
            arraylength
            aload 3 /* params */
        16: .line 100
            invokestatic java.beans.Introspector.findMethod:(Ljava/lang/Class;Ljava/lang/String;I[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 1 /* method */
        17: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual java.beans.MethodDescriptor.setMethod:(Ljava/lang/reflect/Method;)V
        end local 3 // java.lang.Class[] params
        end local 2 // java.lang.Class cls
        18: .line 106
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            areturn
        end local 1 // java.lang.reflect.Method method
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Ljava/beans/MethodDescriptor;
            1   19     1  method  Ljava/lang/reflect/Method;
            3   18     2     cls  Ljava/lang/Class;
            5   18     3  params  [Ljava/lang/Class;
            7   13     4       i  I

  private synchronized void setMethod(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.beans.MethodDescriptor this
        start local 1 // java.lang.reflect.Method method
         0: .line 110
            aload 1 /* method */
            ifnonnull 2
         1: .line 111
            return
         2: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.beans.MethodDescriptor.getClass0:()Ljava/lang/Class;
            ifnonnull 4
         3: .line 114
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.beans.MethodDescriptor.setClass0:(Ljava/lang/Class;)V
         4: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.beans.MethodDescriptor.getClass0:()Ljava/lang/Class;
            aload 1 /* method */
            invokestatic java.beans.MethodDescriptor.getParameterTypes:(Ljava/lang/Class;Ljava/lang/reflect/Method;)[Ljava/lang/Class;
            invokevirtual java.beans.MethodDescriptor.setParams:([Ljava/lang/Class;)V
         5: .line 117
            aload 0 /* this */
            aload 1 /* method */
            invokestatic java.beans.MethodDescriptor.getSoftReference:(Ljava/lang/Object;)Ljava/lang/ref/Reference;
            putfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
         6: .line 118
            return
        end local 1 // java.lang.reflect.Method method
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/beans/MethodDescriptor;
            0    7     1  method  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      method  

  private java.lang.reflect.Method getMethod0();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.beans.MethodDescriptor this
         0: .line 121
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
            ifnull 2
         1: .line 122
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            goto 3
         2: .line 123
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 121
      StackMap locals:
      StackMap stack: java.lang.reflect.Method
            areturn
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/beans/MethodDescriptor;

  private synchronized void setParams(java.lang.Class[]);
    descriptor: ([Ljava/lang/Class;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.beans.MethodDescriptor this
        start local 1 // java.lang.Class[] param
         0: .line 127
            aload 1 /* param */
            ifnonnull 2
         1: .line 128
            return
         2: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* param */
            arraylength
            anewarray java.lang.String
            putfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
         3: .line 131
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 1 /* param */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield java.beans.MethodDescriptor.params:Ljava/util/List;
         4: .line 132
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 9
         6: .line 133
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
            iload 2 /* i */
            aload 1 /* param */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         7: .line 134
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            new java.lang.ref.WeakReference
            dup
            aload 1 /* param */
            iload 2 /* i */
            aaload
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 132
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 1 /* param */
            arraylength
            if_icmplt 6
        end local 2 // int i
        10: .line 136
            return
        end local 1 // java.lang.Class[] param
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Ljava/beans/MethodDescriptor;
            0   11     1  param  [Ljava/lang/Class;
            5   10     2      i  I
    MethodParameters:
       Name  Flags
      param  

  java.lang.String[] getParamNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.beans.MethodDescriptor this
         0: .line 140
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
            areturn
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/beans/MethodDescriptor;

  private synchronized java.lang.Class[] getParams();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.beans.MethodDescriptor this
         0: .line 144
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray java.lang.Class
            astore 1 /* clss */
        start local 1 // java.lang.Class[] clss
         1: .line 146
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 9
         3: .line 147
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.Reference
            astore 3 /* ref */
        start local 3 // java.lang.ref.Reference ref
         4: .line 148
            aload 3 /* ref */
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 4 /* cls */
        start local 4 // java.lang.Class cls
         5: .line 149
            aload 4 /* cls */
            ifnonnull 7
         6: .line 150
            aconst_null
            areturn
         7: .line 152
      StackMap locals: java.lang.ref.Reference java.lang.Class
      StackMap stack:
            aload 1 /* clss */
            iload 2 /* i */
            aload 4 /* cls */
            aastore
        end local 4 // java.lang.Class cls
        end local 3 // java.lang.ref.Reference ref
         8: .line 146
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 2 // int i
        10: .line 155
            aload 1 /* clss */
            areturn
        end local 1 // java.lang.Class[] clss
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/beans/MethodDescriptor;
            1   11     1  clss  [Ljava/lang/Class;
            2   10     2     i  I
            4    8     3   ref  Ljava/lang/ref/Reference;
            5    8     4   cls  Ljava/lang/Class;

  public java.beans.ParameterDescriptor[] getParameterDescriptors();
    descriptor: ()[Ljava/beans/ParameterDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.beans.MethodDescriptor this
         0: .line 166
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            areturn
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/beans/MethodDescriptor;

  void <init>(java.beans.MethodDescriptor, java.beans.MethodDescriptor);
    descriptor: (Ljava/beans/MethodDescriptor;Ljava/beans/MethodDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.beans.MethodDescriptor this
        start local 1 // java.beans.MethodDescriptor x
        start local 2 // java.beans.MethodDescriptor y
         0: .line 195
            aload 0 /* this */
            aload 1 /* x */
            aload 2 /* y */
            invokespecial java.beans.FeatureDescriptor.<init>:(Ljava/beans/FeatureDescriptor;Ljava/beans/FeatureDescriptor;)V
         1: .line 197
            aload 0 /* this */
            aload 1 /* x */
            getfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
            putfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
         2: .line 198
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
            ifnull 4
         3: .line 199
            aload 0 /* this */
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
            putfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
         4: .line 201
      StackMap locals: java.beans.MethodDescriptor java.beans.MethodDescriptor java.beans.MethodDescriptor
      StackMap stack:
            aload 0 /* this */
            aload 1 /* x */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            putfield java.beans.MethodDescriptor.params:Ljava/util/List;
         5: .line 202
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            ifnull 7
         6: .line 203
            aload 0 /* this */
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            putfield java.beans.MethodDescriptor.params:Ljava/util/List;
         7: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* x */
            getfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
            putfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
         8: .line 206
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
            ifnull 10
         9: .line 207
            aload 0 /* this */
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
            putfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
        10: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* x */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            putfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
        11: .line 211
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            ifnull 13
        12: .line 212
            aload 0 /* this */
            aload 2 /* y */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            putfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
        13: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.beans.MethodDescriptor y
        end local 1 // java.beans.MethodDescriptor x
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljava/beans/MethodDescriptor;
            0   14     1     x  Ljava/beans/MethodDescriptor;
            0   14     2     y  Ljava/beans/MethodDescriptor;
    MethodParameters:
      Name  Flags
      x     
      y     

  void <init>(java.beans.MethodDescriptor);
    descriptor: (Ljava/beans/MethodDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // java.beans.MethodDescriptor this
        start local 1 // java.beans.MethodDescriptor old
         0: .line 221
            aload 0 /* this */
            aload 1 /* old */
            invokespecial java.beans.FeatureDescriptor.<init>:(Ljava/beans/FeatureDescriptor;)V
         1: .line 223
            aload 0 /* this */
            aload 1 /* old */
            getfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
            putfield java.beans.MethodDescriptor.methodRef:Ljava/lang/ref/Reference;
         2: .line 224
            aload 0 /* this */
            aload 1 /* old */
            getfield java.beans.MethodDescriptor.params:Ljava/util/List;
            putfield java.beans.MethodDescriptor.params:Ljava/util/List;
         3: .line 225
            aload 0 /* this */
            aload 1 /* old */
            getfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
            putfield java.beans.MethodDescriptor.paramNames:[Ljava/lang/String;
         4: .line 227
            aload 1 /* old */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            ifnull 12
         5: .line 228
            aload 1 /* old */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            arraylength
            istore 2 /* len */
        start local 2 // int len
         6: .line 229
            aload 0 /* this */
            iload 2 /* len */
            anewarray java.beans.ParameterDescriptor
            putfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
         7: .line 230
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 11
         9: .line 231
      StackMap locals: java.beans.MethodDescriptor java.beans.MethodDescriptor int int
      StackMap stack:
            aload 0 /* this */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            iload 3 /* i */
            new java.beans.ParameterDescriptor
            dup
            aload 1 /* old */
            getfield java.beans.MethodDescriptor.parameterDescriptors:[Ljava/beans/ParameterDescriptor;
            iload 3 /* i */
            aaload
            invokespecial java.beans.ParameterDescriptor.<init>:(Ljava/beans/ParameterDescriptor;)V
            aastore
        10: .line 230
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 2 /* len */
            if_icmplt 9
        end local 3 // int i
        end local 2 // int len
        12: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.beans.MethodDescriptor old
        end local 0 // java.beans.MethodDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljava/beans/MethodDescriptor;
            0   13     1   old  Ljava/beans/MethodDescriptor;
            6   12     2   len  I
            8   12     3     i  I
    MethodParameters:
      Name  Flags
      old   
}
SourceFile: "MethodDescriptor.java"