public class org.springframework.expression.spel.support.ReflectivePropertyAccessor implements org.springframework.expression.PropertyAccessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.expression.spel.support.ReflectivePropertyAccessor
  super_class: java.lang.Object
{
  private static final java.util.Set<java.lang.Class<?>> ANY_TYPES;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

  private static final java.util.Set<java.lang.Class<?>> BOOLEAN_TYPES;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

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

  private final java.util.Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey, org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair> readerCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;>;

  private final java.util.Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey, java.lang.reflect.Member> writerCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;Ljava/lang/reflect/Member;>;

  private final java.util.Map<org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey, org.springframework.core.convert.TypeDescriptor> typeDescriptorCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;Lorg/springframework/core/convert/TypeDescriptor;>;

  private final java.util.Map<java.lang.Class<?>, java.lang.reflect.Method[]> sortedMethodsCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;[Ljava/lang/reflect/Method;>;

  private volatile org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair lastReadInvokerPair;
    descriptor: Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 64
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putstatic org.springframework.expression.spel.support.ReflectivePropertyAccessor.ANY_TYPES:Ljava/util/Set;
         1: .line 69
            new java.util.HashSet
            dup
            iconst_4
            invokespecial java.util.HashSet.<init>:(I)V
            astore 0 /* booleanTypes */
        start local 0 // java.util.Set booleanTypes
         2: .line 70
            aload 0 /* booleanTypes */
            ldc Ljava/lang/Boolean;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 71
            aload 0 /* booleanTypes */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 72
            aload 0 /* booleanTypes */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            putstatic org.springframework.expression.spel.support.ReflectivePropertyAccessor.BOOLEAN_TYPES:Ljava/util/Set;
        end local 0 // java.util.Set booleanTypes
         5: .line 73
            return
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            2    5     0  booleanTypes  Ljava/util/Set<Ljava/lang/Class<*>;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
         0: .line 94
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
         2: .line 80
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
         3: .line 82
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
         4: .line 84
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.sortedMethodsCache:Ljava/util/Map;
         5: .line 95
            aload 0 /* this */
            iconst_1
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.allowWrite:Z
         6: .line 96
            return
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // boolean allowWrite
         0: .line 104
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
         2: .line 80
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
         3: .line 82
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
         4: .line 84
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 64
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.sortedMethodsCache:Ljava/util/Map;
         5: .line 105
            aload 0 /* this */
            iload 1 /* allowWrite */
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.allowWrite:Z
         6: .line 106
            return
        end local 1 // boolean allowWrite
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    7     1  allowWrite  Z
    MethodParameters:
            Name  Flags
      allowWrite  

  public java.lang.Class<?>[] getSpecificTargetClasses();
    descriptor: ()[Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
         0: .line 115
            aconst_null
            areturn
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
    Signature: ()[Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public boolean canRead(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String);
    descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // org.springframework.expression.EvaluationContext context
        start local 2 // java.lang.Object target
        start local 3 // java.lang.String name
         0: .line 120
            aload 2 /* target */
            ifnonnull 2
         1: .line 121
            iconst_0
            ireturn
         2: .line 124
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            instanceof java.lang.Class
            ifeq 3
            aload 2 /* target */
            checkcast java.lang.Class
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         4: astore 4 /* type */
        start local 4 // java.lang.Class type
         5: .line 125
            aload 4 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 7
            aload 3 /* name */
            ldc "length"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 126
            iconst_1
            ireturn
         7: .line 129
      StackMap locals: java.lang.Class
      StackMap stack:
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
            dup
            aload 4 /* type */
            aload 3 /* name */
            aload 2 /* target */
            instanceof java.lang.Class
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
            astore 5 /* cacheKey */
        start local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
         8: .line 130
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 131
            iconst_1
            ireturn
        10: .line 134
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findGetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
        11: .line 135
            aload 6 /* method */
            ifnull 17
        12: .line 138
            new org.springframework.core.convert.Property
            dup
            aload 4 /* type */
            aload 6 /* method */
            aconst_null
            invokespecial org.springframework.core.convert.Property.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
            astore 7 /* property */
        start local 7 // org.springframework.core.convert.Property property
        13: .line 139
            new org.springframework.core.convert.TypeDescriptor
            dup
            aload 7 /* property */
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Lorg/springframework/core/convert/Property;)V
            astore 8 /* typeDescriptor */
        start local 8 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        14: .line 140
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            dup
            aload 6 /* method */
            aload 8 /* typeDescriptor */
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.<init>:(Ljava/lang/reflect/Member;Lorg/springframework/core/convert/TypeDescriptor;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 141
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 8 /* typeDescriptor */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 142
            iconst_1
            ireturn
        end local 8 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 7 // org.springframework.core.convert.Property property
        17: .line 145
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Field;
            astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
        18: .line 146
            aload 7 /* field */
            ifnull 23
        19: .line 147
            new org.springframework.core.convert.TypeDescriptor
            dup
            aload 7 /* field */
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Ljava/lang/reflect/Field;)V
            astore 8 /* typeDescriptor */
        start local 8 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        20: .line 148
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            dup
            aload 7 /* field */
            aload 8 /* typeDescriptor */
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.<init>:(Ljava/lang/reflect/Member;Lorg/springframework/core/convert/TypeDescriptor;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 149
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 8 /* typeDescriptor */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 150
            iconst_1
            ireturn
        end local 8 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 7 // java.lang.reflect.Field field
        23: .line 154
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // java.lang.reflect.Method method
        end local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        end local 4 // java.lang.Class type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Object target
        end local 1 // org.springframework.expression.EvaluationContext context
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   24     1         context  Lorg/springframework/expression/EvaluationContext;
            0   24     2          target  Ljava/lang/Object;
            0   24     3            name  Ljava/lang/String;
            5   24     4            type  Ljava/lang/Class<*>;
            8   24     5        cacheKey  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;
           11   24     6          method  Ljava/lang/reflect/Method;
           13   17     7        property  Lorg/springframework/core/convert/Property;
           14   17     8  typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
           18   23     7           field  Ljava/lang/reflect/Field;
           20   23     8  typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
    Exceptions:
      throws org.springframework.expression.AccessException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
         Name  Flags
      context  
      target   
      name     

  public org.springframework.expression.TypedValue read(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String);
    descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Lorg/springframework/expression/TypedValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // org.springframework.expression.EvaluationContext context
        start local 2 // java.lang.Object target
        start local 3 // java.lang.String name
         0: .line 159
            aload 2 /* target */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "Target must not be null"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 160
            aload 2 /* target */
            instanceof java.lang.Class
            ifeq 4
            aload 2 /* target */
            checkcast java.lang.Class
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 2 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         5: astore 4 /* type */
        start local 4 // java.lang.Class type
         6: .line 162
            aload 4 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 10
            aload 3 /* name */
            ldc "length"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 163
            aload 2 /* target */
            instanceof java.lang.Class
            ifeq 9
         8: .line 164
            new org.springframework.expression.AccessException
            dup
            ldc "Cannot access length on array class itself"
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 166
      StackMap locals: java.lang.Class
      StackMap stack:
            new org.springframework.expression.TypedValue
            dup
            aload 2 /* target */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;)V
            areturn
        10: .line 169
      StackMap locals:
      StackMap stack:
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
            dup
            aload 4 /* type */
            aload 3 /* name */
            aload 2 /* target */
            instanceof java.lang.Class
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
            astore 5 /* cacheKey */
        start local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        11: .line 170
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            astore 6 /* invoker */
        start local 6 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair invoker
        12: .line 171
            aload 0 /* this */
            aload 6 /* invoker */
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.lastReadInvokerPair:Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
        13: .line 173
            aload 6 /* invoker */
            ifnull 14
            aload 6 /* invoker */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            instanceof java.lang.reflect.Method
            ifeq 32
        14: .line 174
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
      StackMap stack:
            aload 6 /* invoker */
            ifnull 15
            aload 6 /* invoker */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            goto 16
      StackMap locals:
      StackMap stack:
        15: aconst_null
      StackMap locals:
      StackMap stack: java.lang.reflect.Member
        16: checkcast java.lang.reflect.Method
            astore 7 /* method */
        start local 7 // java.lang.reflect.Method method
        17: .line 175
            aload 7 /* method */
            ifnonnull 25
        18: .line 176
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findGetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 7 /* method */
        19: .line 177
            aload 7 /* method */
            ifnull 25
        20: .line 180
            new org.springframework.core.convert.Property
            dup
            aload 4 /* type */
            aload 7 /* method */
            aconst_null
            invokespecial org.springframework.core.convert.Property.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
            astore 8 /* property */
        start local 8 // org.springframework.core.convert.Property property
        21: .line 181
            new org.springframework.core.convert.TypeDescriptor
            dup
            aload 8 /* property */
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Lorg/springframework/core/convert/Property;)V
            astore 9 /* typeDescriptor */
        start local 9 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        22: .line 182
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            dup
            aload 7 /* method */
            aload 9 /* typeDescriptor */
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.<init>:(Ljava/lang/reflect/Member;Lorg/springframework/core/convert/TypeDescriptor;)V
            astore 6 /* invoker */
        23: .line 183
            aload 0 /* this */
            aload 6 /* invoker */
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.lastReadInvokerPair:Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
        24: .line 184
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 6 /* invoker */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 8 // org.springframework.core.convert.Property property
        25: .line 187
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 7 /* method */
            ifnull 32
        26: .line 189
            aload 7 /* method */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Method;)V
        27: .line 190
            aload 7 /* method */
            aload 2 /* target */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* value */
        start local 8 // java.lang.Object value
        28: .line 191
            new org.springframework.expression.TypedValue
            dup
            aload 8 /* value */
            aload 6 /* invoker */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.typeDescriptor:Lorg/springframework/core/convert/TypeDescriptor;
            aload 8 /* value */
            invokevirtual org.springframework.core.convert.TypeDescriptor.narrow:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
            invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;)V
        29: areturn
        end local 8 // java.lang.Object value
        30: .line 193
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* ex */
        start local 8 // java.lang.Exception ex
        31: .line 194
            new org.springframework.expression.AccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to access property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' through getter method"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* ex */
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 8 // java.lang.Exception ex
        end local 7 // java.lang.reflect.Method method
        32: .line 199
      StackMap locals:
      StackMap stack:
            aload 6 /* invoker */
            ifnull 33
            aload 6 /* invoker */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            instanceof java.lang.reflect.Field
            ifeq 49
        33: .line 200
      StackMap locals:
      StackMap stack:
            aload 6 /* invoker */
            ifnonnull 34
            aconst_null
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 6 /* invoker */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
      StackMap locals:
      StackMap stack: java.lang.reflect.Member
        35: checkcast java.lang.reflect.Field
            astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
        36: .line 201
            aload 7 /* field */
            ifnonnull 42
        37: .line 202
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Field;
            astore 7 /* field */
        38: .line 203
            aload 7 /* field */
            ifnull 42
        39: .line 204
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            dup
            aload 7 /* field */
            new org.springframework.core.convert.TypeDescriptor
            dup
            aload 7 /* field */
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Ljava/lang/reflect/Field;)V
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.<init>:(Ljava/lang/reflect/Member;Lorg/springframework/core/convert/TypeDescriptor;)V
            astore 6 /* invoker */
        40: .line 205
            aload 0 /* this */
            aload 6 /* invoker */
            putfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.lastReadInvokerPair:Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
        41: .line 206
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 6 /* invoker */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 209
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 7 /* field */
            ifnull 49
        43: .line 211
            aload 7 /* field */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
        44: .line 212
            aload 7 /* field */
            aload 2 /* target */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* value */
        start local 8 // java.lang.Object value
        45: .line 213
            new org.springframework.expression.TypedValue
            dup
            aload 8 /* value */
            aload 6 /* invoker */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.typeDescriptor:Lorg/springframework/core/convert/TypeDescriptor;
            aload 8 /* value */
            invokevirtual org.springframework.core.convert.TypeDescriptor.narrow:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
            invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;)V
        46: areturn
        end local 8 // java.lang.Object value
        47: .line 215
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* ex */
        start local 8 // java.lang.Exception ex
        48: .line 216
            new org.springframework.expression.AccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to access field '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* ex */
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 8 // java.lang.Exception ex
        end local 7 // java.lang.reflect.Field field
        49: .line 221
      StackMap locals:
      StackMap stack:
            new org.springframework.expression.AccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Neither getter method nor field found for property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair invoker
        end local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        end local 4 // java.lang.Class type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Object target
        end local 1 // org.springframework.expression.EvaluationContext context
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   50     0            this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   50     1         context  Lorg/springframework/expression/EvaluationContext;
            0   50     2          target  Ljava/lang/Object;
            0   50     3            name  Ljava/lang/String;
            6   50     4            type  Ljava/lang/Class<*>;
           11   50     5        cacheKey  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;
           12   50     6         invoker  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
           17   32     7          method  Ljava/lang/reflect/Method;
           21   25     8        property  Lorg/springframework/core/convert/Property;
           22   25     9  typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
           28   30     8           value  Ljava/lang/Object;
           31   32     8              ex  Ljava/lang/Exception;
           36   49     7           field  Ljava/lang/reflect/Field;
           45   47     8           value  Ljava/lang/Object;
           48   49     8              ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          26    29      30  Class java.lang.Exception
          43    46      47  Class java.lang.Exception
    Exceptions:
      throws org.springframework.expression.AccessException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
         Name  Flags
      context  
      target   
      name     

  public boolean canWrite(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String);
    descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // org.springframework.expression.EvaluationContext context
        start local 2 // java.lang.Object target
        start local 3 // java.lang.String name
         0: .line 226
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.allowWrite:Z
            ifeq 1
            aload 2 /* target */
            ifnonnull 2
         1: .line 227
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 230
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            instanceof java.lang.Class
            ifeq 3
            aload 2 /* target */
            checkcast java.lang.Class
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         4: astore 4 /* type */
        start local 4 // java.lang.Class type
         5: .line 231
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
            dup
            aload 4 /* type */
            aload 3 /* name */
            aload 2 /* target */
            instanceof java.lang.Class
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
            astore 5 /* cacheKey */
        start local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
         6: .line 232
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 233
            iconst_1
            ireturn
         8: .line 236
      StackMap locals: java.lang.Class org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findSetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
         9: .line 237
            aload 6 /* method */
            ifnull 15
        10: .line 239
            new org.springframework.core.convert.Property
            dup
            aload 4 /* type */
            aconst_null
            aload 6 /* method */
            invokespecial org.springframework.core.convert.Property.<init>:(Ljava/lang/Class;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
            astore 7 /* property */
        start local 7 // org.springframework.core.convert.Property property
        11: .line 240
            new org.springframework.core.convert.TypeDescriptor
            dup
            aload 7 /* property */
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Lorg/springframework/core/convert/Property;)V
            astore 8 /* typeDescriptor */
        start local 8 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        12: .line 241
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 6 /* method */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 242
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 8 /* typeDescriptor */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 243
            iconst_1
            ireturn
        end local 8 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 7 // org.springframework.core.convert.Property property
        15: .line 246
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Field;
            astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
        16: .line 247
            aload 7 /* field */
            ifnull 20
        17: .line 248
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 7 /* field */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 249
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            new org.springframework.core.convert.TypeDescriptor
            dup
            aload 7 /* field */
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Ljava/lang/reflect/Field;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 250
            iconst_1
            ireturn
        end local 7 // java.lang.reflect.Field field
        20: .line 254
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // java.lang.reflect.Method method
        end local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        end local 4 // java.lang.Class type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Object target
        end local 1 // org.springframework.expression.EvaluationContext context
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   21     1         context  Lorg/springframework/expression/EvaluationContext;
            0   21     2          target  Ljava/lang/Object;
            0   21     3            name  Ljava/lang/String;
            5   21     4            type  Ljava/lang/Class<*>;
            6   21     5        cacheKey  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;
            9   21     6          method  Ljava/lang/reflect/Method;
           11   15     7        property  Lorg/springframework/core/convert/Property;
           12   15     8  typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
           16   20     7           field  Ljava/lang/reflect/Field;
    Exceptions:
      throws org.springframework.expression.AccessException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
         Name  Flags
      context  
      target   
      name     

  public void write(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String, java.lang.Object);
    descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // org.springframework.expression.EvaluationContext context
        start local 2 // java.lang.Object target
        start local 3 // java.lang.String name
        start local 4 // java.lang.Object newValue
         0: .line 261
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.allowWrite:Z
            ifne 4
         1: .line 262
            new org.springframework.expression.AccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "PropertyAccessor for property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 263
            ldc "' on target ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* target */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] does not allow write operations"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 262
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 266
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            ifnull 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: ldc "Target must not be null"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         7: .line 267
            aload 2 /* target */
            instanceof java.lang.Class
            ifeq 8
            aload 2 /* target */
            checkcast java.lang.Class
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 2 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         9: astore 5 /* type */
        start local 5 // java.lang.Class type
        10: .line 269
            aload 4 /* newValue */
            astore 6 /* possiblyConvertedNewValue */
        start local 6 // java.lang.Object possiblyConvertedNewValue
        11: .line 270
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* target */
            aload 3 /* name */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.getTypeDescriptor:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Lorg/springframework/core/convert/TypeDescriptor;
            astore 7 /* typeDescriptor */
        start local 7 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        12: .line 271
            aload 7 /* typeDescriptor */
            ifnull 19
        13: .line 273
            aload 1 /* context */
            invokeinterface org.springframework.expression.EvaluationContext.getTypeConverter:()Lorg/springframework/expression/TypeConverter;
        14: .line 274
            aload 4 /* newValue */
            aload 4 /* newValue */
            invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
            aload 7 /* typeDescriptor */
        15: .line 273
            invokeinterface org.springframework.expression.TypeConverter.convertValue:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
            astore 6 /* possiblyConvertedNewValue */
        16: .line 275
            goto 19
        17: .line 276
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor org.springframework.expression.EvaluationContext java.lang.Object java.lang.String java.lang.Object java.lang.Class java.lang.Object org.springframework.core.convert.TypeDescriptor
      StackMap stack: org.springframework.expression.EvaluationException
            astore 8 /* evaluationException */
        start local 8 // org.springframework.expression.EvaluationException evaluationException
        18: .line 277
            new org.springframework.expression.AccessException
            dup
            ldc "Type conversion failure"
            aload 8 /* evaluationException */
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 8 // org.springframework.expression.EvaluationException evaluationException
        19: .line 281
      StackMap locals:
      StackMap stack:
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
            dup
            aload 5 /* type */
            aload 3 /* name */
            aload 2 /* target */
            instanceof java.lang.Class
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
            astore 8 /* cacheKey */
        start local 8 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        20: .line 282
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
            aload 8 /* cacheKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Member
            astore 9 /* cachedMember */
        start local 9 // java.lang.reflect.Member cachedMember
        21: .line 284
            aload 9 /* cachedMember */
            ifnull 22
            aload 9 /* cachedMember */
            instanceof java.lang.reflect.Method
            ifeq 34
        22: .line 285
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey java.lang.reflect.Member
      StackMap stack:
            aload 9 /* cachedMember */
            checkcast java.lang.reflect.Method
            astore 10 /* method */
        start local 10 // java.lang.reflect.Method method
        23: .line 286
            aload 10 /* method */
            ifnonnull 28
        24: .line 287
            aload 0 /* this */
            aload 3 /* name */
            aload 5 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findSetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 10 /* method */
        25: .line 288
            aload 10 /* method */
            ifnull 28
        26: .line 289
            aload 10 /* method */
            astore 9 /* cachedMember */
        27: .line 290
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
            aload 8 /* cacheKey */
            aload 9 /* cachedMember */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 293
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 10 /* method */
            ifnull 34
        29: .line 295
            aload 10 /* method */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Method;)V
        30: .line 296
            aload 10 /* method */
            aload 2 /* target */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* possiblyConvertedNewValue */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 297
            return
        32: .line 299
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 11 /* ex */
        start local 11 // java.lang.Exception ex
        33: .line 300
            new org.springframework.expression.AccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to access property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' through setter method"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 11 /* ex */
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 11 // java.lang.Exception ex
        end local 10 // java.lang.reflect.Method method
        34: .line 305
      StackMap locals:
      StackMap stack:
            aload 9 /* cachedMember */
            ifnull 35
            aload 9 /* cachedMember */
            instanceof java.lang.reflect.Field
            ifeq 47
        35: .line 306
      StackMap locals:
      StackMap stack:
            aload 9 /* cachedMember */
            checkcast java.lang.reflect.Field
            astore 10 /* field */
        start local 10 // java.lang.reflect.Field field
        36: .line 307
            aload 10 /* field */
            ifnonnull 41
        37: .line 308
            aload 0 /* this */
            aload 3 /* name */
            aload 5 /* type */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Field;
            astore 10 /* field */
        38: .line 309
            aload 10 /* field */
            ifnull 41
        39: .line 310
            aload 10 /* field */
            astore 9 /* cachedMember */
        40: .line 311
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.writerCache:Ljava/util/Map;
            aload 8 /* cacheKey */
            aload 9 /* cachedMember */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        41: .line 314
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 10 /* field */
            ifnull 47
        42: .line 316
            aload 10 /* field */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
        43: .line 317
            aload 10 /* field */
            aload 2 /* target */
            aload 6 /* possiblyConvertedNewValue */
            invokevirtual java.lang.reflect.Field.set:(Ljava/lang/Object;Ljava/lang/Object;)V
        44: .line 318
            return
        45: .line 320
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 11 /* ex */
        start local 11 // java.lang.Exception ex
        46: .line 321
            new org.springframework.expression.AccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to access field '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 11 /* ex */
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 11 // java.lang.Exception ex
        end local 10 // java.lang.reflect.Field field
        47: .line 326
      StackMap locals:
      StackMap stack:
            new org.springframework.expression.AccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Neither setter method nor field found for property '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.springframework.expression.AccessException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.reflect.Member cachedMember
        end local 8 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        end local 7 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 6 // java.lang.Object possiblyConvertedNewValue
        end local 5 // java.lang.Class type
        end local 4 // java.lang.Object newValue
        end local 3 // java.lang.String name
        end local 2 // java.lang.Object target
        end local 1 // org.springframework.expression.EvaluationContext context
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   48     0                       this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   48     1                    context  Lorg/springframework/expression/EvaluationContext;
            0   48     2                     target  Ljava/lang/Object;
            0   48     3                       name  Ljava/lang/String;
            0   48     4                   newValue  Ljava/lang/Object;
           10   48     5                       type  Ljava/lang/Class<*>;
           11   48     6  possiblyConvertedNewValue  Ljava/lang/Object;
           12   48     7             typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
           18   19     8        evaluationException  Lorg/springframework/expression/EvaluationException;
           20   48     8                   cacheKey  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;
           21   48     9               cachedMember  Ljava/lang/reflect/Member;
           23   34    10                     method  Ljava/lang/reflect/Method;
           33   34    11                         ex  Ljava/lang/Exception;
           36   47    10                      field  Ljava/lang/reflect/Field;
           46   47    11                         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          13    16      17  Class org.springframework.expression.EvaluationException
          29    31      32  Class java.lang.Exception
          42    44      45  Class java.lang.Exception
    Exceptions:
      throws org.springframework.expression.AccessException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      context   
      target    
      name      
      newValue  

  public java.lang.reflect.Member getLastReadInvokerPair();
    descriptor: ()Ljava/lang/reflect/Member;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
         0: .line 336
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.lastReadInvokerPair:Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
            astore 1 /* lastReadInvoker */
        start local 1 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair lastReadInvoker
         1: .line 337
            aload 1 /* lastReadInvoker */
            ifnull 2
            aload 1 /* lastReadInvoker */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            goto 3
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.reflect.Member
         3: areturn
        end local 1 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair lastReadInvoker
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            1    4     1  lastReadInvoker  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      org.springframework.lang.Nullable()

  private org.springframework.core.convert.TypeDescriptor getTypeDescriptor(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String);
    descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Lorg/springframework/core/convert/TypeDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // org.springframework.expression.EvaluationContext context
        start local 2 // java.lang.Object target
        start local 3 // java.lang.String name
         0: .line 343
            aload 2 /* target */
            instanceof java.lang.Class
            ifeq 1
            aload 2 /* target */
            checkcast java.lang.Class
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 2 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         2: astore 4 /* type */
        start local 4 // java.lang.Class type
         3: .line 345
            aload 4 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 5
            aload 3 /* name */
            ldc "length"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 346
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
            areturn
         5: .line 348
      StackMap locals: java.lang.Class
      StackMap stack:
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
            dup
            aload 4 /* type */
            aload 3 /* name */
            aload 2 /* target */
            instanceof java.lang.Class
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
            astore 5 /* cacheKey */
        start local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
         6: .line 349
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.TypeDescriptor
            astore 6 /* typeDescriptor */
        start local 6 // org.springframework.core.convert.TypeDescriptor typeDescriptor
         7: .line 350
            aload 6 /* typeDescriptor */
            ifnonnull 12
         8: .line 353
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* target */
            aload 3 /* name */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.canRead:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Z
            ifne 9
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* target */
            aload 3 /* name */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.canWrite:(Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Z
            ifeq 12
         9: .line 354
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey org.springframework.core.convert.TypeDescriptor
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.typeDescriptorCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.TypeDescriptor
            astore 6 /* typeDescriptor */
        10: .line 356
            goto 12
        11: .line 357
      StackMap locals:
      StackMap stack: org.springframework.expression.AccessException
            pop
        12: .line 361
      StackMap locals:
      StackMap stack:
            aload 6 /* typeDescriptor */
            areturn
        end local 6 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        end local 4 // java.lang.Class type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Object target
        end local 1 // org.springframework.expression.EvaluationContext context
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   13     1         context  Lorg/springframework/expression/EvaluationContext;
            0   13     2          target  Ljava/lang/Object;
            0   13     3            name  Ljava/lang/String;
            3   13     4            type  Ljava/lang/Class<*>;
            6   13     5        cacheKey  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;
            7   13     6  typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
      Exception table:
        from    to  target  type
           8    10      11  Class org.springframework.expression.AccessException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      context  
      target   
      name     

  private java.lang.reflect.Method findGetterForProperty(java.lang.String, java.lang.Class<?>, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Class clazz
        start local 3 // java.lang.Object target
         0: .line 366
            aload 0 /* this */
            aload 1 /* propertyName */
            aload 2 /* clazz */
            aload 3 /* target */
            instanceof java.lang.Class
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findGetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
            astore 4 /* method */
        start local 4 // java.lang.reflect.Method method
         1: .line 367
            aload 4 /* method */
            ifnonnull 3
            aload 3 /* target */
            instanceof java.lang.Class
            ifeq 3
         2: .line 368
            aload 0 /* this */
            aload 1 /* propertyName */
            aload 3 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iconst_0
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findGetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
            astore 4 /* method */
         3: .line 370
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 4 /* method */
            areturn
        end local 4 // java.lang.reflect.Method method
        end local 3 // java.lang.Object target
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    4     1  propertyName  Ljava/lang/String;
            0    4     2         clazz  Ljava/lang/Class<*>;
            0    4     3        target  Ljava/lang/Object;
            1    4     4        method  Ljava/lang/reflect/Method;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      propertyName  
      clazz         
      target        

  private java.lang.reflect.Method findSetterForProperty(java.lang.String, java.lang.Class<?>, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Class clazz
        start local 3 // java.lang.Object target
         0: .line 375
            aload 0 /* this */
            aload 1 /* propertyName */
            aload 2 /* clazz */
            aload 3 /* target */
            instanceof java.lang.Class
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findSetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
            astore 4 /* method */
        start local 4 // java.lang.reflect.Method method
         1: .line 376
            aload 4 /* method */
            ifnonnull 3
            aload 3 /* target */
            instanceof java.lang.Class
            ifeq 3
         2: .line 377
            aload 0 /* this */
            aload 1 /* propertyName */
            aload 3 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iconst_0
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findSetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
            astore 4 /* method */
         3: .line 379
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 4 /* method */
            areturn
        end local 4 // java.lang.reflect.Method method
        end local 3 // java.lang.Object target
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    4     1  propertyName  Ljava/lang/String;
            0    4     2         clazz  Ljava/lang/Class<*>;
            0    4     3        target  Ljava/lang/Object;
            1    4     4        method  Ljava/lang/reflect/Method;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      propertyName  
      clazz         
      target        

  protected java.lang.reflect.Method findGetterForProperty(java.lang.String, java.lang.Class<?>, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Class clazz
        start local 3 // boolean mustBeStatic
         0: .line 387
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* propertyName */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.getPropertyMethodSuffixes:(Ljava/lang/String;)[Ljava/lang/String;
         1: .line 388
            ldc "get"
            aload 2 /* clazz */
            iload 3 /* mustBeStatic */
            iconst_0
            getstatic org.springframework.expression.spel.support.ReflectivePropertyAccessor.ANY_TYPES:Ljava/util/Set;
         2: .line 387
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findMethodForProperty:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;ZILjava/util/Set;)Ljava/lang/reflect/Method;
            astore 4 /* method */
        start local 4 // java.lang.reflect.Method method
         3: .line 389
            aload 4 /* method */
            ifnonnull 7
         4: .line 390
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* propertyName */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.getPropertyMethodSuffixes:(Ljava/lang/String;)[Ljava/lang/String;
         5: .line 391
            ldc "is"
            aload 2 /* clazz */
            iload 3 /* mustBeStatic */
            iconst_0
            getstatic org.springframework.expression.spel.support.ReflectivePropertyAccessor.BOOLEAN_TYPES:Ljava/util/Set;
         6: .line 390
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findMethodForProperty:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;ZILjava/util/Set;)Ljava/lang/reflect/Method;
            astore 4 /* method */
         7: .line 393
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 4 /* method */
            areturn
        end local 4 // java.lang.reflect.Method method
        end local 3 // boolean mustBeStatic
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    8     1  propertyName  Ljava/lang/String;
            0    8     2         clazz  Ljava/lang/Class<*>;
            0    8     3  mustBeStatic  Z
            3    8     4        method  Ljava/lang/reflect/Method;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Z)Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      propertyName  
      clazz         
      mustBeStatic  

  protected java.lang.reflect.Method findSetterForProperty(java.lang.String, java.lang.Class<?>, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Class clazz
        start local 3 // boolean mustBeStatic
         0: .line 401
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* propertyName */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.getPropertyMethodSuffixes:(Ljava/lang/String;)[Ljava/lang/String;
         1: .line 402
            ldc "set"
            aload 2 /* clazz */
            iload 3 /* mustBeStatic */
            iconst_1
            getstatic org.springframework.expression.spel.support.ReflectivePropertyAccessor.ANY_TYPES:Ljava/util/Set;
         2: .line 401
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findMethodForProperty:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;ZILjava/util/Set;)Ljava/lang/reflect/Method;
            areturn
        end local 3 // boolean mustBeStatic
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    3     1  propertyName  Ljava/lang/String;
            0    3     2         clazz  Ljava/lang/Class<*>;
            0    3     3  mustBeStatic  Z
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Z)Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      propertyName  
      clazz         
      mustBeStatic  

  private java.lang.reflect.Method findMethodForProperty(java.lang.String[], java.lang.String, java.lang.Class<?>, boolean, int, java.util.Set<java.lang.Class<?>>);
    descriptor: ([Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;ZILjava/util/Set;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=7
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String[] methodSuffixes
        start local 2 // java.lang.String prefix
        start local 3 // java.lang.Class clazz
        start local 4 // boolean mustBeStatic
        start local 5 // int numberOfParams
        start local 6 // java.util.Set requiredReturnTypes
         0: .line 409
            aload 0 /* this */
            aload 3 /* clazz */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.getSortedMethods:(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
            astore 7 /* methods */
        start local 7 // java.lang.reflect.Method[] methods
         1: .line 410
            aload 1 /* methodSuffixes */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 13
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String[] java.lang.String java.lang.Class int int java.util.Set java.lang.reflect.Method[] top int int java.lang.String[]
      StackMap stack:
         2: aload 11
            iload 9
            aaload
            astore 8 /* methodSuffix */
        start local 8 // java.lang.String methodSuffix
         3: .line 411
            aload 7 /* methods */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 11
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String[] java.lang.String java.lang.Class int int java.util.Set java.lang.reflect.Method[] java.lang.String int int java.lang.String[] top int int java.lang.reflect.Method[]
      StackMap stack:
         4: aload 15
            iload 13
            aaload
            astore 12 /* method */
        start local 12 // java.lang.reflect.Method method
         5: .line 412
            aload 0 /* this */
            aload 12 /* method */
            aload 3 /* clazz */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.isCandidateForProperty:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Z
            ifeq 10
            aload 12 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 2 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* methodSuffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 413
            aload 12 /* method */
            invokevirtual java.lang.reflect.Method.getParameterCount:()I
            iload 5 /* numberOfParams */
            if_icmpne 10
         7: .line 414
            iload 4 /* mustBeStatic */
            ifeq 8
            aload 12 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 10
         8: .line 415
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String[] java.lang.String java.lang.Class int int java.util.Set java.lang.reflect.Method[] java.lang.String int int java.lang.String[] java.lang.reflect.Method int int java.lang.reflect.Method[]
      StackMap stack:
            aload 6 /* requiredReturnTypes */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 9
            aload 6 /* requiredReturnTypes */
            aload 12 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 416
      StackMap locals:
      StackMap stack:
            aload 12 /* method */
            areturn
        end local 12 // java.lang.reflect.Method method
        10: .line 411
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String[] java.lang.String java.lang.Class int int java.util.Set java.lang.reflect.Method[] java.lang.String int int java.lang.String[] top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        11: iload 13
            iload 14
            if_icmplt 4
        end local 8 // java.lang.String methodSuffix
        12: .line 410
            iinc 9 1
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String[] java.lang.String java.lang.Class int int java.util.Set java.lang.reflect.Method[] top int int java.lang.String[]
      StackMap stack:
        13: iload 9
            iload 10
            if_icmplt 2
        14: .line 420
            aconst_null
            areturn
        end local 7 // java.lang.reflect.Method[] methods
        end local 6 // java.util.Set requiredReturnTypes
        end local 5 // int numberOfParams
        end local 4 // boolean mustBeStatic
        end local 3 // java.lang.Class clazz
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.String[] methodSuffixes
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0                 this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   15     1       methodSuffixes  [Ljava/lang/String;
            0   15     2               prefix  Ljava/lang/String;
            0   15     3                clazz  Ljava/lang/Class<*>;
            0   15     4         mustBeStatic  Z
            0   15     5       numberOfParams  I
            0   15     6  requiredReturnTypes  Ljava/util/Set<Ljava/lang/Class<*>;>;
            1   15     7              methods  [Ljava/lang/reflect/Method;
            3   12     8         methodSuffix  Ljava/lang/String;
            5   10    12               method  Ljava/lang/reflect/Method;
    Signature: ([Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<*>;ZILjava/util/Set<Ljava/lang/Class<*>;>;)Ljava/lang/reflect/Method;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
                     Name  Flags
      methodSuffixes       
      prefix               
      clazz                
      mustBeStatic         
      numberOfParams       
      requiredReturnTypes  

  protected boolean isCandidateForProperty(java.lang.reflect.Method, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Class;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Class targetClass
         0: .line 433
            iconst_1
            ireturn
        end local 2 // java.lang.Class targetClass
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    1     1       method  Ljava/lang/reflect/Method;
            0    1     2  targetClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/reflect/Method;Ljava/lang/Class<*>;)Z
    MethodParameters:
             Name  Flags
      method       
      targetClass  

  private java.lang.reflect.Method[] getSortedMethods(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.Class clazz
         0: .line 440
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.sortedMethodsCache:Ljava/util/Map;
            aload 1 /* clazz */
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  org/springframework/expression/spel/support/ReflectivePropertyAccessor.lambda$0(Ljava/lang/Class;)[Ljava/lang/reflect/Method; (6)
                  (Ljava/lang/Class;)[Ljava/lang/reflect/Method;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.lang.reflect.Method[]
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    1     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)[Ljava/lang/reflect/Method;
    MethodParameters:
       Name  Flags
      clazz  

  protected java.lang.String[] getPropertyMethodSuffixes(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String propertyName
         0: .line 454
            aload 0 /* this */
            aload 1 /* propertyName */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.getPropertyMethodSuffix:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* suffix */
        start local 2 // java.lang.String suffix
         1: .line 455
            aload 2 /* suffix */
            invokevirtual java.lang.String.length:()I
            ifle 3
            aload 2 /* suffix */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 3
         2: .line 456
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* suffix */
            aastore
            areturn
         3: .line 458
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* suffix */
            aastore
            dup
            iconst_1
            aload 2 /* suffix */
            invokestatic org.springframework.util.StringUtils.capitalize:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            areturn
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    4     1  propertyName  Ljava/lang/String;
            1    4     2        suffix  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  protected java.lang.String getPropertyMethodSuffix(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String propertyName
         0: .line 466
            aload 1 /* propertyName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 2
            aload 1 /* propertyName */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 2
         1: .line 467
            aload 1 /* propertyName */
            areturn
         2: .line 469
      StackMap locals:
      StackMap stack:
            aload 1 /* propertyName */
            invokestatic org.springframework.util.StringUtils.capitalize:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    3     1  propertyName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      propertyName  

  private java.lang.reflect.Field findField(java.lang.String, java.lang.Class<?>, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Field;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class clazz
        start local 3 // java.lang.Object target
         0: .line 474
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* clazz */
            aload 3 /* target */
            instanceof java.lang.Class
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Field;
            astore 4 /* field */
        start local 4 // java.lang.reflect.Field field
         1: .line 475
            aload 4 /* field */
            ifnonnull 3
            aload 3 /* target */
            instanceof java.lang.Class
            ifeq 3
         2: .line 476
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iconst_0
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Field;
            astore 4 /* field */
         3: .line 478
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 4 /* field */
            areturn
        end local 4 // java.lang.reflect.Field field
        end local 3 // java.lang.Object target
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String name
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0    4     1    name  Ljava/lang/String;
            0    4     2   clazz  Ljava/lang/Class<*>;
            0    4     3  target  Ljava/lang/Object;
            1    4     4   field  Ljava/lang/reflect/Field;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/reflect/Field;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      name    
      clazz   
      target  

  protected java.lang.reflect.Field findField(java.lang.String, java.lang.Class<?>, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Field;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class clazz
        start local 3 // boolean mustBeStatic
         0: .line 486
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getFields:()[Ljava/lang/reflect/Field;
            astore 4 /* fields */
        start local 4 // java.lang.reflect.Field[] fields
         1: .line 487
            aload 4 /* fields */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 6
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String java.lang.Class int java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
         2: aload 8
            iload 6
            aaload
            astore 5 /* field */
        start local 5 // java.lang.reflect.Field field
         3: .line 488
            aload 5 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
            iload 3 /* mustBeStatic */
            ifeq 4
            aload 5 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 5
         4: .line 489
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String java.lang.Class int java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[]
      StackMap stack:
            aload 5 /* field */
            areturn
        end local 5 // java.lang.reflect.Field field
         5: .line 487
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String java.lang.Class int java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         6: iload 6
            iload 7
            if_icmplt 2
         7: .line 494
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            ifnull 11
         8: .line 495
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            iload 3 /* mustBeStatic */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Field;
            astore 5 /* field */
        start local 5 // java.lang.reflect.Field field
         9: .line 496
            aload 5 /* field */
            ifnull 11
        10: .line 497
            aload 5 /* field */
            areturn
        end local 5 // java.lang.reflect.Field field
        11: .line 500
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String java.lang.Class int java.lang.reflect.Field[]
      StackMap stack:
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 17
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor java.lang.String java.lang.Class int java.lang.reflect.Field[] top int int java.lang.Class[]
      StackMap stack:
        12: aload 8
            iload 6
            aaload
            astore 5 /* implementedInterface */
        start local 5 // java.lang.Class implementedInterface
        13: .line 501
            aload 0 /* this */
            aload 1 /* name */
            aload 5 /* implementedInterface */
            iload 3 /* mustBeStatic */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Field;
            astore 9 /* field */
        start local 9 // java.lang.reflect.Field field
        14: .line 502
            aload 9 /* field */
            ifnull 16
        15: .line 503
            aload 9 /* field */
            areturn
        end local 9 // java.lang.reflect.Field field
        end local 5 // java.lang.Class implementedInterface
        16: .line 500
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        17: iload 6
            iload 7
            if_icmplt 12
        18: .line 506
            aconst_null
            areturn
        end local 4 // java.lang.reflect.Field[] fields
        end local 3 // boolean mustBeStatic
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String name
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   19     0                  this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   19     1                  name  Ljava/lang/String;
            0   19     2                 clazz  Ljava/lang/Class<*>;
            0   19     3          mustBeStatic  Z
            1   19     4                fields  [Ljava/lang/reflect/Field;
            3    5     5                 field  Ljava/lang/reflect/Field;
            9   11     5                 field  Ljava/lang/reflect/Field;
           13   16     5  implementedInterface  Ljava/lang/Class<*>;
           14   16     9                 field  Ljava/lang/reflect/Field;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Z)Ljava/lang/reflect/Field;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      name          
      clazz         
      mustBeStatic  

  public org.springframework.expression.PropertyAccessor createOptimalAccessor(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String);
    descriptor: (Lorg/springframework/expression/EvaluationContext;Ljava/lang/Object;Ljava/lang/String;)Lorg/springframework/expression/PropertyAccessor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=8, args_size=4
        start local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
        start local 1 // org.springframework.expression.EvaluationContext context
        start local 2 // java.lang.Object target
        start local 3 // java.lang.String name
         0: .line 522
            aload 2 /* target */
            ifnonnull 2
         1: .line 523
            aload 0 /* this */
            areturn
         2: .line 525
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            instanceof java.lang.Class
            ifeq 3
            aload 2 /* target */
            checkcast java.lang.Class
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         4: astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         5: .line 526
            aload 4 /* clazz */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 7
         6: .line 527
            aload 0 /* this */
            areturn
         7: .line 530
      StackMap locals: java.lang.Class
      StackMap stack:
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
            dup
            aload 4 /* clazz */
            aload 3 /* name */
            aload 2 /* target */
            instanceof java.lang.Class
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
            astore 5 /* cacheKey */
        start local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
         8: .line 531
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            astore 6 /* invocationTarget */
        start local 6 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair invocationTarget
         9: .line 533
            aload 6 /* invocationTarget */
            ifnull 10
            aload 6 /* invocationTarget */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            instanceof java.lang.reflect.Method
            ifeq 21
        10: .line 534
      StackMap locals: org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
      StackMap stack:
            aload 6 /* invocationTarget */
            ifnull 11
            aload 6 /* invocationTarget */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            goto 12
      StackMap locals:
      StackMap stack:
        11: aconst_null
      StackMap locals:
      StackMap stack: java.lang.reflect.Member
        12: checkcast java.lang.reflect.Method
            astore 7 /* method */
        start local 7 // java.lang.reflect.Method method
        13: .line 535
            aload 7 /* method */
            ifnonnull 19
        14: .line 536
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* clazz */
            aload 2 /* target */
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findGetterForProperty:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 7 /* method */
        15: .line 537
            aload 7 /* method */
            ifnull 19
        16: .line 538
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            dup
            aload 7 /* method */
            new org.springframework.core.convert.TypeDescriptor
            dup
            new org.springframework.core.MethodParameter
            dup
            aload 7 /* method */
            iconst_m1
            invokespecial org.springframework.core.MethodParameter.<init>:(Ljava/lang/reflect/Method;I)V
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Lorg/springframework/core/MethodParameter;)V
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.<init>:(Ljava/lang/reflect/Member;Lorg/springframework/core/convert/TypeDescriptor;)V
            astore 6 /* invocationTarget */
        17: .line 539
            aload 7 /* method */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Method;)V
        18: .line 540
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 6 /* invocationTarget */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 543
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 7 /* method */
            ifnull 21
        20: .line 544
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor
            dup
            aload 6 /* invocationTarget */
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor.<init>:(Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;)V
            areturn
        end local 7 // java.lang.reflect.Method method
        21: .line 548
      StackMap locals:
      StackMap stack:
            aload 6 /* invocationTarget */
            ifnull 22
            aload 6 /* invocationTarget */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            instanceof java.lang.reflect.Field
            ifeq 33
        22: .line 549
      StackMap locals:
      StackMap stack:
            aload 6 /* invocationTarget */
            ifnull 23
            aload 6 /* invocationTarget */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.member:Ljava/lang/reflect/Member;
            checkcast java.lang.reflect.Field
            goto 24
      StackMap locals:
      StackMap stack:
        23: aconst_null
      StackMap locals:
      StackMap stack: java.lang.reflect.Field
        24: astore 7 /* field */
        start local 7 // java.lang.reflect.Field field
        25: .line 550
            aload 7 /* field */
            ifnonnull 31
        26: .line 551
            aload 0 /* this */
            aload 3 /* name */
            aload 4 /* clazz */
            aload 2 /* target */
            instanceof java.lang.Class
            invokevirtual org.springframework.expression.spel.support.ReflectivePropertyAccessor.findField:(Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/reflect/Field;
            astore 7 /* field */
        27: .line 552
            aload 7 /* field */
            ifnull 31
        28: .line 553
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair
            dup
            aload 7 /* field */
            new org.springframework.core.convert.TypeDescriptor
            dup
            aload 7 /* field */
            invokespecial org.springframework.core.convert.TypeDescriptor.<init>:(Ljava/lang/reflect/Field;)V
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair.<init>:(Ljava/lang/reflect/Member;Lorg/springframework/core/convert/TypeDescriptor;)V
            astore 6 /* invocationTarget */
        29: .line 554
            aload 7 /* field */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
        30: .line 555
            aload 0 /* this */
            getfield org.springframework.expression.spel.support.ReflectivePropertyAccessor.readerCache:Ljava/util/Map;
            aload 5 /* cacheKey */
            aload 6 /* invocationTarget */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 558
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 7 /* field */
            ifnull 33
        32: .line 559
            new org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor
            dup
            aload 6 /* invocationTarget */
            invokespecial org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor.<init>:(Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;)V
            areturn
        end local 7 // java.lang.reflect.Field field
        33: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 6 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair invocationTarget
        end local 5 // org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey cacheKey
        end local 4 // java.lang.Class clazz
        end local 3 // java.lang.String name
        end local 2 // java.lang.Object target
        end local 1 // org.springframework.expression.EvaluationContext context
        end local 0 // org.springframework.expression.spel.support.ReflectivePropertyAccessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   34     0              this  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor;
            0   34     1           context  Lorg/springframework/expression/EvaluationContext;
            0   34     2            target  Ljava/lang/Object;
            0   34     3              name  Ljava/lang/String;
            5   34     4             clazz  Ljava/lang/Class<*>;
            8   34     5          cacheKey  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$PropertyCacheKey;
            9   34     6  invocationTarget  Lorg/springframework/expression/spel/support/ReflectivePropertyAccessor$InvokerPair;
           13   21     7            method  Ljava/lang/reflect/Method;
           25   33     7             field  Ljava/lang/reflect/Field;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
         Name  Flags
      context  
      target   
      name     

  private static java.lang.reflect.Method[] lambda$0(java.lang.Class);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/reflect/Method;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Class key
         0: .line 441
            aload 0 /* key */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            astore 1 /* methods */
        start local 1 // java.lang.reflect.Method[] methods
         1: .line 442
            aload 1 /* methods */
            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/expression/spel/support/ReflectivePropertyAccessor.lambda$1(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I (6)
                  (Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         2: .line 443
            aload 1 /* methods */
            areturn
        end local 1 // java.lang.reflect.Method[] methods
        end local 0 // java.lang.Class key
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      key  Ljava/lang/Class<*>;
            1    3     1  methods  [Ljava/lang/reflect/Method;

  private static int lambda$1(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 o1
        start local 1 // java.lang.reflect.Method o2
         0: .line 442
            aload 0 /* o1 */
            invokevirtual java.lang.reflect.Method.isBridge:()Z
            aload 1 /* o2 */
            invokevirtual java.lang.reflect.Method.isBridge:()Z
            if_icmpne 1
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         1: aload 0 /* o1 */
            invokevirtual java.lang.reflect.Method.isBridge:()Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // java.lang.reflect.Method o2
        end local 0 // java.lang.reflect.Method o1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    o1  Ljava/lang/reflect/Method;
            0    4     1    o2  Ljava/lang/reflect/Method;
}
SourceFile: "ReflectivePropertyAccessor.java"
NestMembers:
  org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair  org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor  org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private InvokerPair = org.springframework.expression.spel.support.ReflectivePropertyAccessor$InvokerPair of org.springframework.expression.spel.support.ReflectivePropertyAccessor
  public OptimalPropertyAccessor = org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor of org.springframework.expression.spel.support.ReflectivePropertyAccessor
  private final PropertyCacheKey = org.springframework.expression.spel.support.ReflectivePropertyAccessor$PropertyCacheKey of org.springframework.expression.spel.support.ReflectivePropertyAccessor