class org.springframework.beans.ExtendedBeanInfo implements java.beans.BeanInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.beans.ExtendedBeanInfo
  super_class: java.lang.Object
{
  private static final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.beans.BeanInfo delegate;
    descriptor: Ljava/beans/BeanInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Set<java.beans.PropertyDescriptor> propertyDescriptors;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/beans/PropertyDescriptor;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 82
            ldc Lorg/springframework/beans/ExtendedBeanInfo;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.springframework.beans.ExtendedBeanInfo.logger:Lorg/apache/commons/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.beans.BeanInfo);
    descriptor: (Ljava/beans/BeanInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
        start local 1 // java.beans.BeanInfo delegate
         0: .line 99
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 86
            aload 0 /* this */
            new java.util.TreeSet
            dup
            new org.springframework.beans.ExtendedBeanInfo$PropertyDescriptorComparator
            dup
            invokespecial org.springframework.beans.ExtendedBeanInfo$PropertyDescriptorComparator.<init>:()V
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            putfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
         2: .line 100
            aload 0 /* this */
            aload 1 /* delegate */
            putfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
         3: .line 101
            aload 1 /* delegate */
            invokeinterface java.beans.BeanInfo.getPropertyDescriptors:()[Ljava/beans/PropertyDescriptor;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 14
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo top int int java.beans.PropertyDescriptor[]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* pd */
        start local 2 // java.beans.PropertyDescriptor pd
         5: .line 103
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
            aload 2 /* pd */
            instanceof java.beans.IndexedPropertyDescriptor
            ifeq 7
         6: .line 104
            new org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor
            dup
            aload 2 /* pd */
            checkcast java.beans.IndexedPropertyDescriptor
            invokespecial org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor.<init>:(Ljava/beans/IndexedPropertyDescriptor;)V
            goto 8
         7: .line 105
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo java.beans.PropertyDescriptor int int java.beans.PropertyDescriptor[]
      StackMap stack: java.util.Set
            new org.springframework.beans.ExtendedBeanInfo$SimplePropertyDescriptor
            dup
            aload 2 /* pd */
            invokespecial org.springframework.beans.ExtendedBeanInfo$SimplePropertyDescriptor.<init>:(Ljava/beans/PropertyDescriptor;)V
         8: .line 103
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo java.beans.PropertyDescriptor int int java.beans.PropertyDescriptor[]
      StackMap stack: java.util.Set java.beans.PropertyDescriptor
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 106
            goto 13
        10: .line 107
      StackMap locals:
      StackMap stack: java.beans.IntrospectionException
            astore 6 /* ex */
        start local 6 // java.beans.IntrospectionException ex
        11: .line 109
            getstatic org.springframework.beans.ExtendedBeanInfo.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 13
        12: .line 110
            getstatic org.springframework.beans.ExtendedBeanInfo.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Ignoring invalid bean property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* ex */
            invokevirtual java.beans.IntrospectionException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 6 // java.beans.IntrospectionException ex
        end local 2 // java.beans.PropertyDescriptor pd
        13: .line 101
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo top int int java.beans.PropertyDescriptor[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        14: iload 3
            iload 4
            if_icmplt 4
        15: .line 114
            aload 1 /* delegate */
            invokeinterface java.beans.BeanInfo.getMethodDescriptors:()[Ljava/beans/MethodDescriptor;
            astore 2 /* methodDescriptors */
        start local 2 // java.beans.MethodDescriptor[] methodDescriptors
        16: .line 115
            aload 2 /* methodDescriptors */
            ifnull 25
        17: .line 116
            aload 0 /* this */
            aload 2 /* methodDescriptors */
            invokevirtual org.springframework.beans.ExtendedBeanInfo.findCandidateWriteMethods:([Ljava/beans/MethodDescriptor;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 24
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo java.beans.MethodDescriptor[] top java.util.Iterator
      StackMap stack:
        18: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 3 /* method */
        start local 3 // java.lang.reflect.Method method
        19: .line 118
            aload 0 /* this */
            aload 3 /* method */
            invokevirtual org.springframework.beans.ExtendedBeanInfo.handleCandidateWriteMethod:(Ljava/lang/reflect/Method;)V
        20: .line 119
            goto 24
        21: .line 120
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo java.beans.MethodDescriptor[] java.lang.reflect.Method java.util.Iterator
      StackMap stack: java.beans.IntrospectionException
            astore 5 /* ex */
        start local 5 // java.beans.IntrospectionException ex
        22: .line 122
            getstatic org.springframework.beans.ExtendedBeanInfo.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 24
        23: .line 123
            getstatic org.springframework.beans.ExtendedBeanInfo.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Ignoring candidate write method ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* ex */
            invokevirtual java.beans.IntrospectionException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 5 // java.beans.IntrospectionException ex
        end local 3 // java.lang.reflect.Method method
        24: .line 116
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo java.beans.MethodDescriptor[] top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        25: .line 128
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.BeanInfo java.beans.MethodDescriptor[]
      StackMap stack:
            return
        end local 2 // java.beans.MethodDescriptor[] methodDescriptors
        end local 1 // java.beans.BeanInfo delegate
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Lorg/springframework/beans/ExtendedBeanInfo;
            0   26     1           delegate  Ljava/beans/BeanInfo;
            5   13     2                 pd  Ljava/beans/PropertyDescriptor;
           11   13     6                 ex  Ljava/beans/IntrospectionException;
           16   26     2  methodDescriptors  [Ljava/beans/MethodDescriptor;
           19   24     3             method  Ljava/lang/reflect/Method;
           22   24     5                 ex  Ljava/beans/IntrospectionException;
      Exception table:
        from    to  target  type
           5     9      10  Class java.beans.IntrospectionException
          19    20      21  Class java.beans.IntrospectionException
    MethodParameters:
          Name  Flags
      delegate  

  private java.util.List<java.lang.reflect.Method> findCandidateWriteMethods(java.beans.MethodDescriptor[]);
    descriptor: ([Ljava/beans/MethodDescriptor;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
        start local 1 // java.beans.MethodDescriptor[] methodDescriptors
         0: .line 132
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* matches */
        start local 2 // java.util.List matches
         1: .line 133
            aload 1 /* methodDescriptors */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 7
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.beans.MethodDescriptor[] java.util.List top int int java.beans.MethodDescriptor[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* methodDescriptor */
        start local 3 // java.beans.MethodDescriptor methodDescriptor
         3: .line 134
            aload 3 /* methodDescriptor */
            invokevirtual java.beans.MethodDescriptor.getMethod:()Ljava/lang/reflect/Method;
            astore 7 /* method */
        start local 7 // java.lang.reflect.Method method
         4: .line 135
            aload 7 /* method */
            invokestatic org.springframework.beans.ExtendedBeanInfo.isCandidateWriteMethod:(Ljava/lang/reflect/Method;)Z
            ifeq 6
         5: .line 136
            aload 2 /* matches */
            aload 7 /* method */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.reflect.Method method
        end local 3 // java.beans.MethodDescriptor methodDescriptor
         6: .line 133
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         7: iload 4
            iload 5
            if_icmplt 2
         8: .line 142
            aload 2 /* matches */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  org/springframework/beans/ExtendedBeanInfo.lambda$0(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I (6)
                  (Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
         9: .line 143
            aload 2 /* matches */
            areturn
        end local 2 // java.util.List matches
        end local 1 // java.beans.MethodDescriptor[] methodDescriptors
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/springframework/beans/ExtendedBeanInfo;
            0   10     1  methodDescriptors  [Ljava/beans/MethodDescriptor;
            1   10     2            matches  Ljava/util/List<Ljava/lang/reflect/Method;>;
            3    6     3   methodDescriptor  Ljava/beans/MethodDescriptor;
            4    6     7             method  Ljava/lang/reflect/Method;
    Signature: ([Ljava/beans/MethodDescriptor;)Ljava/util/List<Ljava/lang/reflect/Method;>;
    MethodParameters:
                   Name  Flags
      methodDescriptors  

  public static boolean isCandidateWriteMethod(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.reflect.Method method
         0: .line 147
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 1 /* methodName */
        start local 1 // java.lang.String methodName
         1: .line 148
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 2 /* parameterTypes */
        start local 2 // java.lang.Class[] parameterTypes
         2: .line 149
            aload 2 /* parameterTypes */
            arraylength
            istore 3 /* nParams */
        start local 3 // int nParams
         3: .line 150
            aload 1 /* methodName */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmple 7
            aload 1 /* methodName */
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 7
         4: .line 151
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 7
         5: .line 152
      StackMap locals: java.lang.String java.lang.Class[] int
      StackMap stack:
            iload 3 /* nParams */
            iconst_1
            if_icmpeq 6
            iload 3 /* nParams */
            iconst_2
            if_icmpne 7
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aload 2 /* parameterTypes */
            iconst_0
            aaload
            if_acmpne 7
         6: .line 150
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
        end local 3 // int nParams
        end local 2 // java.lang.Class[] parameterTypes
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0          method  Ljava/lang/reflect/Method;
            1    8     1      methodName  Ljava/lang/String;
            2    8     2  parameterTypes  [Ljava/lang/Class;
            3    8     3         nParams  I
    MethodParameters:
        Name  Flags
      method  

  private void handleCandidateWriteMethod(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
        start local 1 // java.lang.reflect.Method method
         0: .line 156
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterCount:()I
            istore 2 /* nParams */
        start local 2 // int nParams
         1: .line 157
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual org.springframework.beans.ExtendedBeanInfo.propertyNameFor:(Ljava/lang/reflect/Method;)Ljava/lang/String;
            astore 3 /* propertyName */
        start local 3 // java.lang.String propertyName
         2: .line 158
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            iload 2 /* nParams */
            iconst_1
            isub
            aaload
            astore 4 /* propertyType */
        start local 4 // java.lang.Class propertyType
         3: .line 159
            aload 0 /* this */
            aload 3 /* propertyName */
            aload 4 /* propertyType */
            invokevirtual org.springframework.beans.ExtendedBeanInfo.findExistingPropertyDescriptor:(Ljava/lang/String;Ljava/lang/Class;)Ljava/beans/PropertyDescriptor;
            astore 5 /* existingPd */
        start local 5 // java.beans.PropertyDescriptor existingPd
         4: .line 160
            iload 2 /* nParams */
            iconst_1
            if_icmpne 10
         5: .line 161
            aload 5 /* existingPd */
            ifnonnull 8
         6: .line 162
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
            new org.springframework.beans.ExtendedBeanInfo$SimplePropertyDescriptor
            dup
            aload 3 /* propertyName */
            aconst_null
            aload 1 /* method */
            invokespecial org.springframework.beans.ExtendedBeanInfo$SimplePropertyDescriptor.<init>:(Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 163
            goto 25
         8: .line 165
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.lang.reflect.Method int java.lang.String java.lang.Class java.beans.PropertyDescriptor
      StackMap stack:
            aload 5 /* existingPd */
            aload 1 /* method */
            invokevirtual java.beans.PropertyDescriptor.setWriteMethod:(Ljava/lang/reflect/Method;)V
         9: .line 167
            goto 25
        10: .line 168
      StackMap locals:
      StackMap stack:
            iload 2 /* nParams */
            iconst_2
            if_icmpne 24
        11: .line 169
            aload 5 /* existingPd */
            ifnonnull 16
        12: .line 170
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
        13: .line 171
            new org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor
            dup
            aload 3 /* propertyName */
            aconst_null
            aconst_null
            aconst_null
            aload 1 /* method */
            invokespecial org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor.<init>:(Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
        14: .line 170
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 172
            goto 25
        16: .line 173
      StackMap locals:
      StackMap stack:
            aload 5 /* existingPd */
            instanceof java.beans.IndexedPropertyDescriptor
            ifeq 19
        17: .line 174
            aload 5 /* existingPd */
            checkcast java.beans.IndexedPropertyDescriptor
            aload 1 /* method */
            invokevirtual java.beans.IndexedPropertyDescriptor.setIndexedWriteMethod:(Ljava/lang/reflect/Method;)V
        18: .line 175
            goto 25
        19: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
            aload 5 /* existingPd */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        20: .line 178
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
            new org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor
            dup
        21: .line 179
            aload 3 /* propertyName */
            aload 5 /* existingPd */
            invokevirtual java.beans.PropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
            aload 5 /* existingPd */
            invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
            aconst_null
            aload 1 /* method */
            invokespecial org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor.<init>:(Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
        22: .line 178
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        23: .line 181
            goto 25
        24: .line 183
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Write method must have exactly 1 or 2 parameters: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 185
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.beans.PropertyDescriptor existingPd
        end local 4 // java.lang.Class propertyType
        end local 3 // java.lang.String propertyName
        end local 2 // int nParams
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0          this  Lorg/springframework/beans/ExtendedBeanInfo;
            0   26     1        method  Ljava/lang/reflect/Method;
            1   26     2       nParams  I
            2   26     3  propertyName  Ljava/lang/String;
            3   26     4  propertyType  Ljava/lang/Class<*>;
            4   26     5    existingPd  Ljava/beans/PropertyDescriptor;
    Exceptions:
      throws java.beans.IntrospectionException
    MethodParameters:
        Name  Flags
      method  

  private java.beans.PropertyDescriptor findExistingPropertyDescriptor(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/beans/PropertyDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Class propertyType
         0: .line 189
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.lang.String java.lang.Class top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.beans.PropertyDescriptor
            astore 3 /* pd */
        start local 3 // java.beans.PropertyDescriptor pd
         2: .line 191
            aload 3 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
            astore 6 /* candidateName */
        start local 6 // java.lang.String candidateName
         3: .line 192
            aload 3 /* pd */
            instanceof java.beans.IndexedPropertyDescriptor
            ifeq 9
         4: .line 193
            aload 3 /* pd */
            checkcast java.beans.IndexedPropertyDescriptor
            astore 7 /* ipd */
        start local 7 // java.beans.IndexedPropertyDescriptor ipd
         5: .line 194
            aload 7 /* ipd */
            invokevirtual java.beans.IndexedPropertyDescriptor.getIndexedPropertyType:()Ljava/lang/Class;
            astore 5 /* candidateType */
        start local 5 // java.lang.Class candidateType
         6: .line 195
            aload 6 /* candidateName */
            aload 1 /* propertyName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
         7: .line 196
            aload 5 /* candidateType */
            aload 2 /* propertyType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 8
            aload 5 /* candidateType */
            aload 2 /* propertyType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 13
         8: .line 197
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.lang.String java.lang.Class java.beans.PropertyDescriptor java.util.Iterator java.lang.Class java.lang.String java.beans.IndexedPropertyDescriptor
      StackMap stack:
            aload 3 /* pd */
            areturn
        end local 7 // java.beans.IndexedPropertyDescriptor ipd
        end local 5 // java.lang.Class candidateType
         9: .line 201
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.lang.String java.lang.Class java.beans.PropertyDescriptor java.util.Iterator top java.lang.String
      StackMap stack:
            aload 3 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getPropertyType:()Ljava/lang/Class;
            astore 5 /* candidateType */
        start local 5 // java.lang.Class candidateType
        10: .line 202
            aload 6 /* candidateName */
            aload 1 /* propertyName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 203
            aload 5 /* candidateType */
            aload 2 /* propertyType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 12
            aload 2 /* propertyType */
            aload 5 /* candidateType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 204
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.lang.String java.lang.Class java.beans.PropertyDescriptor java.util.Iterator java.lang.Class java.lang.String
      StackMap stack:
            aload 3 /* pd */
            areturn
        end local 6 // java.lang.String candidateName
        end local 5 // java.lang.Class candidateType
        end local 3 // java.beans.PropertyDescriptor pd
        13: .line 189
      StackMap locals: org.springframework.beans.ExtendedBeanInfo java.lang.String java.lang.Class top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        14: .line 208
            aconst_null
            areturn
        end local 2 // java.lang.Class propertyType
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lorg/springframework/beans/ExtendedBeanInfo;
            0   15     1   propertyName  Ljava/lang/String;
            0   15     2   propertyType  Ljava/lang/Class<*>;
            2   13     3             pd  Ljava/beans/PropertyDescriptor;
            6    9     5  candidateType  Ljava/lang/Class<*>;
           10   13     5  candidateType  Ljava/lang/Class<*>;
            3   13     6  candidateName  Ljava/lang/String;
            5    9     7            ipd  Ljava/beans/IndexedPropertyDescriptor;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/beans/PropertyDescriptor;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      propertyName  
      propertyType  

  private java.lang.String propertyNameFor(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
        start local 1 // java.lang.reflect.Method method
         0: .line 212
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            iconst_3
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.beans.Introspector.decapitalize:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/springframework/beans/ExtendedBeanInfo;
            0    1     1  method  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      method  

  public java.beans.PropertyDescriptor[] getPropertyDescriptors();
    descriptor: ()[Ljava/beans/PropertyDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
         0: .line 224
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.propertyDescriptors:Ljava/util/Set;
            iconst_0
            anewarray java.beans.PropertyDescriptor
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.beans.PropertyDescriptor[]
            areturn
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/beans/ExtendedBeanInfo;

  public java.beans.BeanInfo[] getAdditionalBeanInfo();
    descriptor: ()[Ljava/beans/BeanInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
         0: .line 229
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
            invokeinterface java.beans.BeanInfo.getAdditionalBeanInfo:()[Ljava/beans/BeanInfo;
            areturn
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/beans/ExtendedBeanInfo;

  public java.beans.BeanDescriptor getBeanDescriptor();
    descriptor: ()Ljava/beans/BeanDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
         0: .line 234
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
            invokeinterface java.beans.BeanInfo.getBeanDescriptor:()Ljava/beans/BeanDescriptor;
            areturn
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/beans/ExtendedBeanInfo;

  public int getDefaultEventIndex();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
         0: .line 239
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
            invokeinterface java.beans.BeanInfo.getDefaultEventIndex:()I
            ireturn
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/beans/ExtendedBeanInfo;

  public int getDefaultPropertyIndex();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
         0: .line 244
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
            invokeinterface java.beans.BeanInfo.getDefaultPropertyIndex:()I
            ireturn
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/beans/ExtendedBeanInfo;

  public java.beans.EventSetDescriptor[] getEventSetDescriptors();
    descriptor: ()[Ljava/beans/EventSetDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
         0: .line 249
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
            invokeinterface java.beans.BeanInfo.getEventSetDescriptors:()[Ljava/beans/EventSetDescriptor;
            areturn
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/beans/ExtendedBeanInfo;

  public java.awt.Image getIcon(int);
    descriptor: (I)Ljava/awt/Image;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
        start local 1 // int iconKind
         0: .line 254
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
            iload 1 /* iconKind */
            invokeinterface java.beans.BeanInfo.getIcon:(I)Ljava/awt/Image;
            areturn
        end local 1 // int iconKind
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/springframework/beans/ExtendedBeanInfo;
            0    1     1  iconKind  I
    MethodParameters:
          Name  Flags
      iconKind  

  public java.beans.MethodDescriptor[] getMethodDescriptors();
    descriptor: ()[Ljava/beans/MethodDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.beans.ExtendedBeanInfo this
         0: .line 259
            aload 0 /* this */
            getfield org.springframework.beans.ExtendedBeanInfo.delegate:Ljava/beans/BeanInfo;
            invokeinterface java.beans.BeanInfo.getMethodDescriptors:()[Ljava/beans/MethodDescriptor;
            areturn
        end local 0 // org.springframework.beans.ExtendedBeanInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/beans/ExtendedBeanInfo;

  private static int lambda$0(java.lang.reflect.Method, java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.reflect.Method m1
        start local 1 // java.lang.reflect.Method m2
         0: .line 142
            aload 1 /* m2 */
            invokevirtual java.lang.reflect.Method.toString:()Ljava/lang/String;
            aload 0 /* m1 */
            invokevirtual java.lang.reflect.Method.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 1 // java.lang.reflect.Method m2
        end local 0 // java.lang.reflect.Method m1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    m1  Ljava/lang/reflect/Method;
            0    1     1    m2  Ljava/lang/reflect/Method;
}
SourceFile: "ExtendedBeanInfo.java"
NestMembers:
  org.springframework.beans.ExtendedBeanInfo$PropertyDescriptorComparator  org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor  org.springframework.beans.ExtendedBeanInfo$SimplePropertyDescriptor
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  PropertyDescriptorComparator = org.springframework.beans.ExtendedBeanInfo$PropertyDescriptorComparator of org.springframework.beans.ExtendedBeanInfo
  SimpleIndexedPropertyDescriptor = org.springframework.beans.ExtendedBeanInfo$SimpleIndexedPropertyDescriptor of org.springframework.beans.ExtendedBeanInfo
  SimplePropertyDescriptor = org.springframework.beans.ExtendedBeanInfo$SimplePropertyDescriptor of org.springframework.beans.ExtendedBeanInfo