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

  private final org.springframework.beans.PropertyEditorRegistrySupport propertyEditorRegistry;
    descriptor: Lorg/springframework/beans/PropertyEditorRegistrySupport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object targetObject;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  public void <init>(org.springframework.beans.PropertyEditorRegistrySupport);
    descriptor: (Lorg/springframework/beans/PropertyEditorRegistrySupport;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // org.springframework.beans.PropertyEditorRegistrySupport propertyEditorRegistry
         0: .line 70
            aload 0 /* this */
            aload 1 /* propertyEditorRegistry */
            aconst_null
            invokespecial org.springframework.beans.TypeConverterDelegate.<init>:(Lorg/springframework/beans/PropertyEditorRegistrySupport;Ljava/lang/Object;)V
         1: .line 71
            return
        end local 1 // org.springframework.beans.PropertyEditorRegistrySupport propertyEditorRegistry
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lorg/springframework/beans/TypeConverterDelegate;
            0    2     1  propertyEditorRegistry  Lorg/springframework/beans/PropertyEditorRegistrySupport;
    MethodParameters:
                        Name  Flags
      propertyEditorRegistry  

  public void <init>(org.springframework.beans.PropertyEditorRegistrySupport, java.lang.Object);
    descriptor: (Lorg/springframework/beans/PropertyEditorRegistrySupport;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // org.springframework.beans.PropertyEditorRegistrySupport propertyEditorRegistry
        start local 2 // java.lang.Object targetObject
         0: .line 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 79
            aload 0 /* this */
            aload 1 /* propertyEditorRegistry */
            putfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
         2: .line 80
            aload 0 /* this */
            aload 2 /* targetObject */
            putfield org.springframework.beans.TypeConverterDelegate.targetObject:Ljava/lang/Object;
         3: .line 81
            return
        end local 2 // java.lang.Object targetObject
        end local 1 // org.springframework.beans.PropertyEditorRegistrySupport propertyEditorRegistry
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    4     0                    this  Lorg/springframework/beans/TypeConverterDelegate;
            0    4     1  propertyEditorRegistry  Lorg/springframework/beans/PropertyEditorRegistrySupport;
            0    4     2            targetObject  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                        Name  Flags
      propertyEditorRegistry  
      targetObject            

  public <T> T convertIfNecessary(java.lang.String, , , java.lang.Class<T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Object oldValue
        start local 3 // java.lang.Object newValue
        start local 4 // java.lang.Class requiredType
         0: .line 98
            aload 0 /* this */
            aload 1 /* propertyName */
            aload 2 /* oldValue */
            aload 3 /* newValue */
            aload 4 /* requiredType */
            aload 4 /* requiredType */
            invokestatic org.springframework.core.convert.TypeDescriptor.valueOf:(Ljava/lang/Class;)Lorg/springframework/core/convert/TypeDescriptor;
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Class requiredType
        end local 3 // java.lang.Object newValue
        end local 2 // java.lang.Object oldValue
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/springframework/beans/TypeConverterDelegate;
            0    1     1  propertyName  Ljava/lang/String;
            0    1     2      oldValue  Ljava/lang/Object;
            0    1     3      newValue  Ljava/lang/Object;
            0    1     4  requiredType  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      propertyName  
      oldValue      
      newValue      
      requiredType  

  public <T> T convertIfNecessary(java.lang.String, , , java.lang.Class<T>, org.springframework.core.convert.TypeDescriptor);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=6
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Object oldValue
        start local 3 // java.lang.Object newValue
        start local 4 // java.lang.Class requiredType
        start local 5 // org.springframework.core.convert.TypeDescriptor typeDescriptor
         0: .line 119
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
            aload 4 /* requiredType */
            aload 1 /* propertyName */
            invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.findCustomEditor:(Ljava/lang/Class;Ljava/lang/String;)Ljava/beans/PropertyEditor;
            astore 6 /* editor */
        start local 6 // java.beans.PropertyEditor editor
         1: .line 121
            aconst_null
            astore 7 /* conversionAttemptEx */
        start local 7 // org.springframework.core.convert.ConversionFailedException conversionAttemptEx
         2: .line 124
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
            invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.getConversionService:()Lorg/springframework/core/convert/ConversionService;
            astore 8 /* conversionService */
        start local 8 // org.springframework.core.convert.ConversionService conversionService
         3: .line 125
            aload 6 /* editor */
            ifnonnull 10
            aload 8 /* conversionService */
            ifnull 10
            aload 3 /* newValue */
            ifnull 10
            aload 5 /* typeDescriptor */
            ifnull 10
         4: .line 126
            aload 3 /* newValue */
            invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
            astore 9 /* sourceTypeDesc */
        start local 9 // org.springframework.core.convert.TypeDescriptor sourceTypeDesc
         5: .line 127
            aload 8 /* conversionService */
            aload 9 /* sourceTypeDesc */
            aload 5 /* typeDescriptor */
            invokeinterface org.springframework.core.convert.ConversionService.canConvert:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Z
            ifeq 10
         6: .line 129
            aload 8 /* conversionService */
            aload 3 /* newValue */
            aload 9 /* sourceTypeDesc */
            aload 5 /* typeDescriptor */
            invokeinterface org.springframework.core.convert.ConversionService.convert:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
         7: areturn
         8: .line 131
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.String java.lang.Object java.lang.Object java.lang.Class org.springframework.core.convert.TypeDescriptor java.beans.PropertyEditor org.springframework.core.convert.ConversionFailedException org.springframework.core.convert.ConversionService org.springframework.core.convert.TypeDescriptor
      StackMap stack: org.springframework.core.convert.ConversionFailedException
            astore 10 /* ex */
        start local 10 // org.springframework.core.convert.ConversionFailedException ex
         9: .line 133
            aload 10 /* ex */
            astore 7 /* conversionAttemptEx */
        end local 10 // org.springframework.core.convert.ConversionFailedException ex
        end local 9 // org.springframework.core.convert.TypeDescriptor sourceTypeDesc
        10: .line 138
      StackMap locals:
      StackMap stack:
            aload 3 /* newValue */
            astore 9 /* convertedValue */
        start local 9 // java.lang.Object convertedValue
        11: .line 141
            aload 6 /* editor */
            ifnonnull 12
            aload 4 /* requiredType */
            ifnull 22
            aload 4 /* requiredType */
            aload 9 /* convertedValue */
            invokestatic org.springframework.util.ClassUtils.isAssignableValue:(Ljava/lang/Class;Ljava/lang/Object;)Z
            ifne 22
        12: .line 142
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5 /* typeDescriptor */
            ifnull 19
            aload 4 /* requiredType */
            ifnull 19
            ldc Ljava/util/Collection;
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 19
        13: .line 143
            aload 9 /* convertedValue */
            instanceof java.lang.String
            ifeq 19
        14: .line 144
            aload 5 /* typeDescriptor */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getElementTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
            astore 10 /* elementTypeDesc */
        start local 10 // org.springframework.core.convert.TypeDescriptor elementTypeDesc
        15: .line 145
            aload 10 /* elementTypeDesc */
            ifnull 19
        16: .line 146
            aload 10 /* elementTypeDesc */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
            astore 11 /* elementType */
        start local 11 // java.lang.Class elementType
        17: .line 147
            ldc Ljava/lang/Class;
            aload 11 /* elementType */
            if_acmpeq 18
            ldc Ljava/lang/Enum;
            aload 11 /* elementType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 19
        18: .line 148
      StackMap locals: org.springframework.core.convert.TypeDescriptor java.lang.Class
      StackMap stack:
            aload 9 /* convertedValue */
            checkcast java.lang.String
            invokestatic org.springframework.util.StringUtils.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
            astore 9 /* convertedValue */
        end local 11 // java.lang.Class elementType
        end local 10 // org.springframework.core.convert.TypeDescriptor elementTypeDesc
        19: .line 152
      StackMap locals:
      StackMap stack:
            aload 6 /* editor */
            ifnonnull 21
        20: .line 153
            aload 0 /* this */
            aload 4 /* requiredType */
            invokevirtual org.springframework.beans.TypeConverterDelegate.findDefaultEditor:(Ljava/lang/Class;)Ljava/beans/PropertyEditor;
            astore 6 /* editor */
        21: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* oldValue */
            aload 9 /* convertedValue */
            aload 4 /* requiredType */
            aload 6 /* editor */
            invokevirtual org.springframework.beans.TypeConverterDelegate.doConvertValue:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
            astore 9 /* convertedValue */
        22: .line 158
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* standardConversion */
        start local 10 // boolean standardConversion
        23: .line 160
            aload 4 /* requiredType */
            ifnull 94
        24: .line 163
            aload 9 /* convertedValue */
            ifnull 70
        25: .line 164
            ldc Ljava/lang/Object;
            aload 4 /* requiredType */
            if_acmpne 27
        26: .line 165
            aload 9 /* convertedValue */
            areturn
        27: .line 167
      StackMap locals: int
      StackMap stack:
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 31
        28: .line 169
            aload 9 /* convertedValue */
            instanceof java.lang.String
            ifeq 30
            ldc Ljava/lang/Enum;
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 30
        29: .line 170
            aload 9 /* convertedValue */
            checkcast java.lang.String
            invokestatic org.springframework.util.StringUtils.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
            astore 9 /* convertedValue */
        30: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* convertedValue */
            aload 1 /* propertyName */
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertToTypedArray:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        31: .line 174
      StackMap locals:
      StackMap stack:
            aload 9 /* convertedValue */
            instanceof java.util.Collection
            ifeq 37
        32: .line 176
            aload 0 /* this */
        33: .line 177
            aload 9 /* convertedValue */
            checkcast java.util.Collection
            aload 1 /* propertyName */
            aload 4 /* requiredType */
            aload 5 /* typeDescriptor */
        34: .line 176
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertToTypedCollection:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Collection;
            astore 9 /* convertedValue */
        35: .line 178
            iconst_1
            istore 10 /* standardConversion */
        36: .line 179
            goto 42
        37: .line 180
      StackMap locals:
      StackMap stack:
            aload 9 /* convertedValue */
            instanceof java.util.Map
            ifeq 42
        38: .line 182
            aload 0 /* this */
        39: .line 183
            aload 9 /* convertedValue */
            checkcast java.util.Map
            aload 1 /* propertyName */
            aload 4 /* requiredType */
            aload 5 /* typeDescriptor */
        40: .line 182
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertToTypedMap:(Ljava/util/Map;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Map;
            astore 9 /* convertedValue */
        41: .line 184
            iconst_1
            istore 10 /* standardConversion */
        42: .line 186
      StackMap locals:
      StackMap stack:
            aload 9 /* convertedValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 45
            aload 9 /* convertedValue */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            iconst_1
            if_icmpne 45
        43: .line 187
            aload 9 /* convertedValue */
            iconst_0
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 9 /* convertedValue */
        44: .line 188
            iconst_1
            istore 10 /* standardConversion */
        45: .line 190
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/String;
            aload 4 /* requiredType */
            if_acmpne 47
            aload 9 /* convertedValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.springframework.util.ClassUtils.isPrimitiveOrWrapper:(Ljava/lang/Class;)Z
            ifeq 47
        46: .line 192
            aload 9 /* convertedValue */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        47: .line 194
      StackMap locals:
      StackMap stack:
            aload 9 /* convertedValue */
            instanceof java.lang.String
            ifeq 65
            aload 4 /* requiredType */
            aload 9 /* convertedValue */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 65
        48: .line 195
            aload 7 /* conversionAttemptEx */
            ifnonnull 59
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 59
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.isEnum:()Z
            ifne 59
        49: .line 197
            aload 4 /* requiredType */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 11 /* strCtor */
        start local 11 // java.lang.reflect.Constructor strCtor
        50: .line 198
            aload 11 /* strCtor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* convertedValue */
            aastore
            invokestatic org.springframework.beans.BeanUtils.instantiateClass:(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
        51: areturn
        end local 11 // java.lang.reflect.Constructor strCtor
        52: .line 200
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            astore 11 /* ex */
        start local 11 // java.lang.NoSuchMethodException ex
        53: .line 202
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 59
        54: .line 203
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "No String constructor found on type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 11 /* ex */
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 11 // java.lang.NoSuchMethodException ex
        55: goto 59
        56: .line 206
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 11 /* ex */
        start local 11 // java.lang.Exception ex
        57: .line 207
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 59
        58: .line 208
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Construction via String failed for type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 11 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 11 // java.lang.Exception ex
        59: .line 212
      StackMap locals:
      StackMap stack:
            aload 9 /* convertedValue */
            checkcast java.lang.String
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 11 /* trimmedValue */
        start local 11 // java.lang.String trimmedValue
        60: .line 213
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.isEnum:()Z
            ifeq 62
            aload 11 /* trimmedValue */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 62
        61: .line 215
            aconst_null
            areturn
        62: .line 217
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 4 /* requiredType */
            aload 11 /* trimmedValue */
            aload 9 /* convertedValue */
            invokevirtual org.springframework.beans.TypeConverterDelegate.attemptToConvertStringToEnum:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            astore 9 /* convertedValue */
        63: .line 218
            iconst_1
            istore 10 /* standardConversion */
        end local 11 // java.lang.String trimmedValue
        64: .line 219
            goto 72
        65: .line 220
      StackMap locals:
      StackMap stack:
            aload 9 /* convertedValue */
            instanceof java.lang.Number
            ifeq 72
            ldc Ljava/lang/Number;
            aload 4 /* requiredType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 72
        66: .line 222
            aload 9 /* convertedValue */
            checkcast java.lang.Number
            aload 4 /* requiredType */
        67: .line 221
            invokestatic org.springframework.util.NumberUtils.convertNumberToTargetClass:(Ljava/lang/Number;Ljava/lang/Class;)Ljava/lang/Number;
            astore 9 /* convertedValue */
        68: .line 223
            iconst_1
            istore 10 /* standardConversion */
        69: .line 225
            goto 72
        70: .line 228
      StackMap locals:
      StackMap stack:
            aload 4 /* requiredType */
            ldc Ljava/util/Optional;
            if_acmpne 72
        71: .line 229
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            astore 9 /* convertedValue */
        72: .line 233
      StackMap locals:
      StackMap stack:
            aload 4 /* requiredType */
            aload 9 /* convertedValue */
            invokestatic org.springframework.util.ClassUtils.isAssignableValue:(Ljava/lang/Class;Ljava/lang/Object;)Z
            ifne 94
        73: .line 234
            aload 7 /* conversionAttemptEx */
            ifnull 75
        74: .line 236
            aload 7 /* conversionAttemptEx */
            athrow
        75: .line 238
      StackMap locals:
      StackMap stack:
            aload 8 /* conversionService */
            ifnull 79
            aload 5 /* typeDescriptor */
            ifnull 79
        76: .line 241
            aload 3 /* newValue */
            invokestatic org.springframework.core.convert.TypeDescriptor.forObject:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
            astore 11 /* sourceTypeDesc */
        start local 11 // org.springframework.core.convert.TypeDescriptor sourceTypeDesc
        77: .line 242
            aload 8 /* conversionService */
            aload 11 /* sourceTypeDesc */
            aload 5 /* typeDescriptor */
            invokeinterface org.springframework.core.convert.ConversionService.canConvert:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Z
            ifeq 79
        78: .line 243
            aload 8 /* conversionService */
            aload 3 /* newValue */
            aload 11 /* sourceTypeDesc */
            aload 5 /* typeDescriptor */
            invokeinterface org.springframework.core.convert.ConversionService.convert:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
            areturn
        end local 11 // org.springframework.core.convert.TypeDescriptor sourceTypeDesc
        79: .line 248
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 11 /* msg */
        start local 11 // java.lang.StringBuilder msg
        80: .line 249
            aload 11 /* msg */
            ldc "Cannot convert value of type '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* newValue */
            invokestatic org.springframework.util.ClassUtils.getDescriptiveType:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        81: .line 250
            aload 11 /* msg */
            ldc "' to required type '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* requiredType */
            invokestatic org.springframework.util.ClassUtils.getQualifiedName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        82: .line 251
            aload 1 /* propertyName */
            ifnull 84
        83: .line 252
            aload 11 /* msg */
            ldc " for property '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* propertyName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        84: .line 254
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 6 /* editor */
            ifnull 92
        85: .line 255
            aload 11 /* msg */
            ldc ": PropertyEditor ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* editor */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        86: .line 256
            ldc "] returned inappropriate value of type '"
        87: .line 255
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        88: .line 257
            aload 9 /* convertedValue */
            invokestatic org.springframework.util.ClassUtils.getDescriptiveType:(Ljava/lang/Object;)Ljava/lang/String;
        89: .line 256
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        90: .line 257
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        91: .line 258
            new java.lang.IllegalArgumentException
            dup
            aload 11 /* msg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        92: .line 261
      StackMap locals:
      StackMap stack:
            aload 11 /* msg */
            ldc ": no matching editors or conversion strategy found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        93: .line 262
            new java.lang.IllegalStateException
            dup
            aload 11 /* msg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.lang.StringBuilder msg
        94: .line 267
      StackMap locals:
      StackMap stack:
            aload 7 /* conversionAttemptEx */
            ifnull 100
        95: .line 268
            aload 6 /* editor */
            ifnonnull 97
            iload 10 /* standardConversion */
            ifne 97
            aload 4 /* requiredType */
            ifnull 97
            ldc Ljava/lang/Object;
            aload 4 /* requiredType */
            if_acmpeq 97
        96: .line 269
            aload 7 /* conversionAttemptEx */
            athrow
        97: .line 271
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            ldc "Original ConversionService attempt failed - ignored since PropertyEditor based conversion eventually succeeded"
        98: .line 272
            aload 7 /* conversionAttemptEx */
        99: .line 271
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
       100: .line 275
      StackMap locals:
      StackMap stack:
            aload 9 /* convertedValue */
            areturn
        end local 10 // boolean standardConversion
        end local 9 // java.lang.Object convertedValue
        end local 8 // org.springframework.core.convert.ConversionService conversionService
        end local 7 // org.springframework.core.convert.ConversionFailedException conversionAttemptEx
        end local 6 // java.beans.PropertyEditor editor
        end local 5 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 4 // java.lang.Class requiredType
        end local 3 // java.lang.Object newValue
        end local 2 // java.lang.Object oldValue
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  101     0                 this  Lorg/springframework/beans/TypeConverterDelegate;
            0  101     1         propertyName  Ljava/lang/String;
            0  101     2             oldValue  Ljava/lang/Object;
            0  101     3             newValue  Ljava/lang/Object;
            0  101     4         requiredType  Ljava/lang/Class<TT;>;
            0  101     5       typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
            1  101     6               editor  Ljava/beans/PropertyEditor;
            2  101     7  conversionAttemptEx  Lorg/springframework/core/convert/ConversionFailedException;
            3  101     8    conversionService  Lorg/springframework/core/convert/ConversionService;
            5   10     9       sourceTypeDesc  Lorg/springframework/core/convert/TypeDescriptor;
            9   10    10                   ex  Lorg/springframework/core/convert/ConversionFailedException;
           11  101     9       convertedValue  Ljava/lang/Object;
           15   19    10      elementTypeDesc  Lorg/springframework/core/convert/TypeDescriptor;
           17   19    11          elementType  Ljava/lang/Class<*>;
           23  101    10   standardConversion  Z
           50   52    11              strCtor  Ljava/lang/reflect/Constructor<TT;>;
           53   55    11                   ex  Ljava/lang/NoSuchMethodException;
           57   59    11                   ex  Ljava/lang/Exception;
           60   64    11         trimmedValue  Ljava/lang/String;
           77   79    11       sourceTypeDesc  Lorg/springframework/core/convert/TypeDescriptor;
           80   94    11                  msg  Ljava/lang/StringBuilder;
      Exception table:
        from    to  target  type
           6     7       8  Class org.springframework.core.convert.ConversionFailedException
          49    51      52  Class java.lang.NoSuchMethodException
          49    51      56  Class java.lang.Exception
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class<TT;>;Lorg/springframework/core/convert/TypeDescriptor;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
      3:
        org.springframework.lang.Nullable()
      4:
        org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      propertyName    
      oldValue        
      newValue        
      requiredType    
      typeDescriptor  

  private  attemptToConvertStringToEnum(java.lang.Class<?>, java.lang.String, );
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.Class requiredType
        start local 2 // java.lang.String trimmedValue
        start local 3 // java.lang.Object currentConvertedValue
         0: .line 279
            aload 3 /* currentConvertedValue */
            astore 4 /* convertedValue */
        start local 4 // java.lang.Object convertedValue
         1: .line 281
            ldc Ljava/lang/Enum;
            aload 1 /* requiredType */
            if_acmpne 18
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.targetObject:Ljava/lang/Object;
            ifnull 18
         2: .line 283
            aload 2 /* trimmedValue */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 5 /* index */
        start local 5 // int index
         3: .line 284
            iload 5 /* index */
            iconst_m1
            if_icmple 18
         4: .line 285
            aload 2 /* trimmedValue */
            iconst_0
            iload 5 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* enumType */
        start local 6 // java.lang.String enumType
         5: .line 286
            aload 2 /* trimmedValue */
            iload 5 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* fieldName */
        start local 7 // java.lang.String fieldName
         6: .line 287
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.targetObject:Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 8 /* cl */
        start local 8 // java.lang.ClassLoader cl
         7: .line 289
            aload 6 /* enumType */
            aload 8 /* cl */
            invokestatic org.springframework.util.ClassUtils.forName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
            astore 9 /* enumValueType */
        start local 9 // java.lang.Class enumValueType
         8: .line 290
            aload 9 /* enumValueType */
            aload 7 /* fieldName */
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 10 /* enumField */
        start local 10 // java.lang.reflect.Field enumField
         9: .line 291
            aload 10 /* enumField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* convertedValue */
        end local 10 // java.lang.reflect.Field enumField
        end local 9 // java.lang.Class enumValueType
        10: .line 292
            goto 18
        11: .line 293
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Class java.lang.String java.lang.Object java.lang.Object int java.lang.String java.lang.String java.lang.ClassLoader
      StackMap stack: java.lang.ClassNotFoundException
            astore 9 /* ex */
        start local 9 // java.lang.ClassNotFoundException ex
        12: .line 294
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 18
        13: .line 295
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Enum class ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enumType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] cannot be loaded"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 9 /* ex */
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 9 // java.lang.ClassNotFoundException ex
        14: goto 18
        15: .line 298
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9 /* ex */
        start local 9 // java.lang.Throwable ex
        16: .line 299
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 18
        17: .line 300
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Field ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] isn't an enum value for type ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* enumType */
            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 9 /* ex */
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 9 // java.lang.Throwable ex
        end local 8 // java.lang.ClassLoader cl
        end local 7 // java.lang.String fieldName
        end local 6 // java.lang.String enumType
        end local 5 // int index
        18: .line 306
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Class java.lang.String java.lang.Object java.lang.Object
      StackMap stack:
            aload 4 /* convertedValue */
            aload 3 /* currentConvertedValue */
            if_acmpne 26
        19: .line 311
            aload 1 /* requiredType */
            aload 2 /* trimmedValue */
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 5 /* enumField */
        start local 5 // java.lang.reflect.Field enumField
        20: .line 312
            aload 5 /* enumField */
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
        21: .line 313
            aload 5 /* enumField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* convertedValue */
        end local 5 // java.lang.reflect.Field enumField
        22: .line 314
            goto 26
        23: .line 315
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* ex */
        start local 5 // java.lang.Throwable ex
        24: .line 316
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 26
        25: .line 317
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Field ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* convertedValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] isn't an enum value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* ex */
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable ex
        26: .line 322
      StackMap locals:
      StackMap stack:
            aload 4 /* convertedValue */
            areturn
        end local 4 // java.lang.Object convertedValue
        end local 3 // java.lang.Object currentConvertedValue
        end local 2 // java.lang.String trimmedValue
        end local 1 // java.lang.Class requiredType
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   27     0                   this  Lorg/springframework/beans/TypeConverterDelegate;
            0   27     1           requiredType  Ljava/lang/Class<*>;
            0   27     2           trimmedValue  Ljava/lang/String;
            0   27     3  currentConvertedValue  Ljava/lang/Object;
            1   27     4         convertedValue  Ljava/lang/Object;
            3   18     5                  index  I
            5   18     6               enumType  Ljava/lang/String;
            6   18     7              fieldName  Ljava/lang/String;
            7   18     8                     cl  Ljava/lang/ClassLoader;
            8   10     9          enumValueType  Ljava/lang/Class<*>;
            9   10    10              enumField  Ljava/lang/reflect/Field;
           12   14     9                     ex  Ljava/lang/ClassNotFoundException;
           16   18     9                     ex  Ljava/lang/Throwable;
           20   22     5              enumField  Ljava/lang/reflect/Field;
           24   26     5                     ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7    10      11  Class java.lang.ClassNotFoundException
           7    10      15  Class java.lang.Throwable
          19    22      23  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
                       Name  Flags
      requiredType           
      trimmedValue           
      currentConvertedValue  

  private java.beans.PropertyEditor findDefaultEditor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/beans/PropertyEditor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.Class requiredType
         0: .line 331
            aconst_null
            astore 2 /* editor */
        start local 2 // java.beans.PropertyEditor editor
         1: .line 332
            aload 1 /* requiredType */
            ifnull 5
         2: .line 334
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
            aload 1 /* requiredType */
            invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.getDefaultEditor:(Ljava/lang/Class;)Ljava/beans/PropertyEditor;
            astore 2 /* editor */
         3: .line 335
            aload 2 /* editor */
            ifnonnull 5
            ldc Ljava/lang/String;
            aload 1 /* requiredType */
            if_acmpeq 5
         4: .line 337
            aload 1 /* requiredType */
            invokestatic org.springframework.beans.BeanUtils.findEditorByConvention:(Ljava/lang/Class;)Ljava/beans/PropertyEditor;
            astore 2 /* editor */
         5: .line 340
      StackMap locals: java.beans.PropertyEditor
      StackMap stack:
            aload 2 /* editor */
            areturn
        end local 2 // java.beans.PropertyEditor editor
        end local 1 // java.lang.Class requiredType
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/springframework/beans/TypeConverterDelegate;
            0    6     1  requiredType  Ljava/lang/Class<*>;
            1    6     2        editor  Ljava/beans/PropertyEditor;
    Signature: (Ljava/lang/Class<*>;)Ljava/beans/PropertyEditor;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      requiredType  

  private  doConvertValue(, , java.lang.Class<?>, java.beans.PropertyEditor);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.Object oldValue
        start local 2 // java.lang.Object newValue
        start local 3 // java.lang.Class requiredType
        start local 4 // java.beans.PropertyEditor editor
         0: .line 358
            aload 2 /* newValue */
            astore 5 /* convertedValue */
        start local 5 // java.lang.Object convertedValue
         1: .line 360
            aload 4 /* editor */
            ifnull 11
            aload 5 /* convertedValue */
            instanceof java.lang.String
            ifne 11
         2: .line 366
            aload 4 /* editor */
            aload 5 /* convertedValue */
            invokeinterface java.beans.PropertyEditor.setValue:(Ljava/lang/Object;)V
         3: .line 367
            aload 4 /* editor */
            invokeinterface java.beans.PropertyEditor.getValue:()Ljava/lang/Object;
            astore 6 /* newConvertedValue */
        start local 6 // java.lang.Object newConvertedValue
         4: .line 368
            aload 6 /* newConvertedValue */
            aload 5 /* convertedValue */
            if_acmpeq 11
         5: .line 369
            aload 6 /* newConvertedValue */
            astore 5 /* convertedValue */
         6: .line 372
            aconst_null
            astore 4 /* editor */
        end local 6 // java.lang.Object newConvertedValue
         7: .line 374
            goto 11
         8: .line 375
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Object java.lang.Object java.lang.Class java.beans.PropertyEditor java.lang.Object
      StackMap stack: java.lang.Exception
            astore 6 /* ex */
        start local 6 // java.lang.Exception ex
         9: .line 376
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 11
        10: .line 377
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "PropertyEditor ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* editor */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] does not support setValue call"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 6 // java.lang.Exception ex
        11: .line 383
      StackMap locals:
      StackMap stack:
            aload 5 /* convertedValue */
            astore 6 /* returnValue */
        start local 6 // java.lang.Object returnValue
        12: .line 385
            aload 3 /* requiredType */
            ifnull 16
            aload 3 /* requiredType */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 16
            aload 5 /* convertedValue */
            instanceof java.lang.String[]
            ifeq 16
        13: .line 389
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 15
        14: .line 390
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Converting String array to comma-delimited String ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* convertedValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
        15: .line 392
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5 /* convertedValue */
            checkcast java.lang.String[]
            invokestatic org.springframework.util.StringUtils.arrayToCommaDelimitedString:([Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* convertedValue */
        16: .line 395
      StackMap locals:
      StackMap stack:
            aload 5 /* convertedValue */
            instanceof java.lang.String
            ifeq 24
        17: .line 396
            aload 4 /* editor */
            ifnull 22
        18: .line 398
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 20
        19: .line 399
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Converting String to ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* requiredType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] using property editor ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* editor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
        20: .line 401
      StackMap locals:
      StackMap stack:
            aload 5 /* convertedValue */
            checkcast java.lang.String
            astore 7 /* newTextValue */
        start local 7 // java.lang.String newTextValue
        21: .line 402
            aload 0 /* this */
            aload 1 /* oldValue */
            aload 7 /* newTextValue */
            aload 4 /* editor */
            invokevirtual org.springframework.beans.TypeConverterDelegate.doConvertTextValue:(Ljava/lang/Object;Ljava/lang/String;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
            areturn
        end local 7 // java.lang.String newTextValue
        22: .line 404
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/String;
            aload 3 /* requiredType */
            if_acmpne 24
        23: .line 405
            aload 5 /* convertedValue */
            astore 6 /* returnValue */
        24: .line 409
      StackMap locals:
      StackMap stack:
            aload 6 /* returnValue */
            areturn
        end local 6 // java.lang.Object returnValue
        end local 5 // java.lang.Object convertedValue
        end local 4 // java.beans.PropertyEditor editor
        end local 3 // java.lang.Class requiredType
        end local 2 // java.lang.Object newValue
        end local 1 // java.lang.Object oldValue
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   25     0               this  Lorg/springframework/beans/TypeConverterDelegate;
            0   25     1           oldValue  Ljava/lang/Object;
            0   25     2           newValue  Ljava/lang/Object;
            0   25     3       requiredType  Ljava/lang/Class<*>;
            0   25     4             editor  Ljava/beans/PropertyEditor;
            1   25     5     convertedValue  Ljava/lang/Object;
            4    7     6  newConvertedValue  Ljava/lang/Object;
            9   11     6                 ex  Ljava/lang/Exception;
           12   25     6        returnValue  Ljava/lang/Object;
           21   22     7       newTextValue  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     7       8  Class java.lang.Exception
    Signature: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
      3:
        org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      oldValue      
      newValue      
      requiredType  
      editor        

  private java.lang.Object doConvertTextValue(java.lang.Object, java.lang.String, java.beans.PropertyEditor);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/beans/PropertyEditor;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.Object oldValue
        start local 2 // java.lang.String newTextValue
        start local 3 // java.beans.PropertyEditor editor
         0: .line 421
            aload 3 /* editor */
            aload 1 /* oldValue */
            invokeinterface java.beans.PropertyEditor.setValue:(Ljava/lang/Object;)V
         1: .line 422
            goto 5
         2: .line 423
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
         3: .line 424
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 5
         4: .line 425
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "PropertyEditor ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* editor */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] does not support setValue call"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Exception ex
         5: .line 429
      StackMap locals:
      StackMap stack:
            aload 3 /* editor */
            aload 2 /* newTextValue */
            invokeinterface java.beans.PropertyEditor.setAsText:(Ljava/lang/String;)V
         6: .line 430
            aload 3 /* editor */
            invokeinterface java.beans.PropertyEditor.getValue:()Ljava/lang/Object;
            areturn
        end local 3 // java.beans.PropertyEditor editor
        end local 2 // java.lang.String newTextValue
        end local 1 // java.lang.Object oldValue
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/springframework/beans/TypeConverterDelegate;
            0    7     1      oldValue  Ljava/lang/Object;
            0    7     2  newTextValue  Ljava/lang/String;
            0    7     3        editor  Ljava/beans/PropertyEditor;
            3    5     4            ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
      2:
    MethodParameters:
              Name  Flags
      oldValue      
      newTextValue  
      editor        

  private  convertToTypedArray(, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.Object input
        start local 2 // java.lang.String propertyName
        start local 3 // java.lang.Class componentType
         0: .line 434
            aload 1 /* input */
            instanceof java.util.Collection
            ifeq 13
         1: .line 436
            aload 1 /* input */
            checkcast java.util.Collection
            astore 4 /* coll */
        start local 4 // java.util.Collection coll
         2: .line 437
            aload 3 /* componentType */
            aload 4 /* coll */
            invokeinterface java.util.Collection.size:()I
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
         3: .line 438
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: .line 439
            aload 4 /* coll */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7 /* it */
        start local 7 // java.util.Iterator it
         5: goto 11
         6: .line 440
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Object java.lang.String java.lang.Class java.util.Collection java.lang.Object int java.util.Iterator
      StackMap stack:
            aload 0 /* this */
         7: .line 441
            aload 0 /* this */
            aload 2 /* propertyName */
            iload 6 /* i */
            invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
            aconst_null
            aload 7 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aload 3 /* componentType */
         8: .line 440
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 8 /* value */
        start local 8 // java.lang.Object value
         9: .line 442
            aload 5 /* result */
            iload 6 /* i */
            aload 8 /* value */
            invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
        end local 8 // java.lang.Object value
        10: .line 439
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: aload 7 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 7 // java.util.Iterator it
        12: .line 444
            aload 5 /* result */
            areturn
        end local 6 // int i
        end local 5 // java.lang.Object result
        end local 4 // java.util.Collection coll
        13: .line 446
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.lang.Object java.lang.String java.lang.Class
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 28
        14: .line 448
            aload 3 /* componentType */
            aload 1 /* input */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 449
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
            aload 3 /* componentType */
            aload 2 /* propertyName */
            invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.hasCustomEditorForElement:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifne 17
        16: .line 450
            aload 1 /* input */
            areturn
        17: .line 452
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 4 /* arrayLength */
        start local 4 // int arrayLength
        18: .line 453
            aload 3 /* componentType */
            iload 4 /* arrayLength */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 5 /* result */
        start local 5 // java.lang.Object result
        19: .line 454
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        20: goto 26
        21: .line 455
      StackMap locals: int java.lang.Object int
      StackMap stack:
            aload 0 /* this */
        22: .line 456
            aload 0 /* this */
            aload 2 /* propertyName */
            iload 6 /* i */
            invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
            aconst_null
            aload 1 /* input */
            iload 6 /* i */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            aload 3 /* componentType */
        23: .line 455
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 7 /* value */
        start local 7 // java.lang.Object value
        24: .line 457
            aload 5 /* result */
            iload 6 /* i */
            aload 7 /* value */
            invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
        end local 7 // java.lang.Object value
        25: .line 454
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 4 /* arrayLength */
            if_icmplt 21
        end local 6 // int i
        27: .line 459
            aload 5 /* result */
            areturn
        end local 5 // java.lang.Object result
        end local 4 // int arrayLength
        28: .line 463
      StackMap locals:
      StackMap stack:
            aload 3 /* componentType */
            iconst_1
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
        29: .line 464
            aload 0 /* this */
        30: .line 465
            aload 0 /* this */
            aload 2 /* propertyName */
            iconst_0
            invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
            aconst_null
            aload 1 /* input */
            aload 3 /* componentType */
        31: .line 464
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
        32: .line 466
            aload 4 /* result */
            iconst_0
            aload 5 /* value */
            invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
        33: .line 467
            aload 4 /* result */
            areturn
        end local 5 // java.lang.Object value
        end local 4 // java.lang.Object result
        end local 3 // java.lang.Class componentType
        end local 2 // java.lang.String propertyName
        end local 1 // java.lang.Object input
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   34     0           this  Lorg/springframework/beans/TypeConverterDelegate;
            0   34     1          input  Ljava/lang/Object;
            0   34     2   propertyName  Ljava/lang/String;
            0   34     3  componentType  Ljava/lang/Class<*>;
            2   13     4           coll  Ljava/util/Collection<*>;
            3   13     5         result  Ljava/lang/Object;
            4   13     6              i  I
            5   12     7             it  Ljava/util/Iterator<*>;
            9   10     8          value  Ljava/lang/Object;
           18   28     4    arrayLength  I
           19   28     5         result  Ljava/lang/Object;
           20   27     6              i  I
           24   25     7          value  Ljava/lang/Object;
           29   34     4         result  Ljava/lang/Object;
           32   34     5          value  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
               Name  Flags
      input          
      propertyName   
      componentType  

  private java.util.Collection<?> convertToTypedCollection(java.util.Collection<?>, java.lang.String, java.lang.Class<?>, org.springframework.core.convert.TypeDescriptor);
    descriptor: (Ljava/util/Collection;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=5
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.util.Collection original
        start local 2 // java.lang.String propertyName
        start local 3 // java.lang.Class requiredType
        start local 4 // org.springframework.core.convert.TypeDescriptor typeDescriptor
         0: .line 475
            ldc Ljava/util/Collection;
            aload 3 /* requiredType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 476
            aload 1 /* original */
            areturn
         2: .line 479
      StackMap locals:
      StackMap stack:
            aload 3 /* requiredType */
            invokestatic org.springframework.core.CollectionFactory.isApproximableCollectionType:(Ljava/lang/Class;)Z
            istore 5 /* approximable */
        start local 5 // boolean approximable
         3: .line 480
            iload 5 /* approximable */
            ifne 9
            aload 0 /* this */
            aload 3 /* requiredType */
            invokevirtual org.springframework.beans.TypeConverterDelegate.canCreateCopy:(Ljava/lang/Class;)Z
            ifne 9
         4: .line 481
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 8
         5: .line 482
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Custom Collection type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 483
            ldc "] does not allow for creating a copy - injecting original Collection as-is"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 482
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         8: .line 485
      StackMap locals: int
      StackMap stack:
            aload 1 /* original */
            areturn
         9: .line 488
      StackMap locals:
      StackMap stack:
            aload 3 /* requiredType */
            aload 1 /* original */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            istore 6 /* originalAllowed */
        start local 6 // boolean originalAllowed
        10: .line 489
            aload 4 /* typeDescriptor */
            ifnull 11
            aload 4 /* typeDescriptor */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getElementTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
            goto 12
      StackMap locals: int
      StackMap stack:
        11: aconst_null
      StackMap locals:
      StackMap stack: org.springframework.core.convert.TypeDescriptor
        12: astore 7 /* elementType */
        start local 7 // org.springframework.core.convert.TypeDescriptor elementType
        13: .line 490
            aload 7 /* elementType */
            ifnonnull 16
            iload 6 /* originalAllowed */
            ifeq 16
        14: .line 491
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
            aconst_null
            aload 2 /* propertyName */
            invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.hasCustomEditorForElement:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifne 16
        15: .line 492
            aload 1 /* original */
            areturn
        16: .line 497
      StackMap locals: org.springframework.core.convert.TypeDescriptor
      StackMap stack:
            aload 1 /* original */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8 /* it */
        start local 8 // java.util.Iterator it
        17: .line 498
            goto 24
        end local 8 // java.util.Iterator it
        18: .line 499
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9 /* ex */
        start local 9 // java.lang.Throwable ex
        19: .line 500
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 23
        20: .line 501
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Cannot access Collection of type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 502
            ldc "] - injecting original Collection as-is: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 501
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        23: .line 504
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor top java.lang.Throwable
      StackMap stack:
            aload 1 /* original */
            areturn
        end local 9 // java.lang.Throwable ex
        start local 8 // java.util.Iterator it
        24: .line 509
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator
      StackMap stack:
            iload 5 /* approximable */
            ifeq 27
        25: .line 510
            aload 1 /* original */
            aload 1 /* original */
            invokeinterface java.util.Collection.size:()I
            invokestatic org.springframework.core.CollectionFactory.createApproximateCollection:(Ljava/lang/Object;I)Ljava/util/Collection;
            astore 9 /* convertedCopy */
        start local 9 // java.util.Collection convertedCopy
        26: .line 511
            goto 36
        end local 9 // java.util.Collection convertedCopy
        27: .line 514
      StackMap locals:
      StackMap stack:
            aload 3 /* requiredType */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.springframework.util.ReflectionUtils.accessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
        28: .line 513
            astore 9 /* convertedCopy */
        start local 9 // java.util.Collection convertedCopy
        29: .line 516
            goto 36
        end local 9 // java.util.Collection convertedCopy
        30: .line 517
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10 /* ex */
        start local 10 // java.lang.Throwable ex
        31: .line 518
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 35
        32: .line 519
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Cannot create copy of Collection type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 520
            ldc "] - injecting original Collection as-is: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 519
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        35: .line 522
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator top java.lang.Throwable
      StackMap stack:
            aload 1 /* original */
            areturn
        end local 10 // java.lang.Throwable ex
        start local 9 // java.util.Collection convertedCopy
        36: .line 525
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection
      StackMap stack:
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        37: .line 526
            goto 57
        38: .line 527
      StackMap locals: int
      StackMap stack:
            aload 8 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 11 /* element */
        start local 11 // java.lang.Object element
        39: .line 528
            aload 0 /* this */
            aload 2 /* propertyName */
            iload 10 /* i */
            invokevirtual org.springframework.beans.TypeConverterDelegate.buildIndexedPropertyName:(Ljava/lang/String;I)Ljava/lang/String;
            astore 12 /* indexedPropertyName */
        start local 12 // java.lang.String indexedPropertyName
        40: .line 529
            aload 0 /* this */
            aload 12 /* indexedPropertyName */
            aconst_null
            aload 11 /* element */
        41: .line 530
            aload 7 /* elementType */
            ifnull 42
            aload 7 /* elementType */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
            goto 43
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection int java.lang.Object java.lang.String
      StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object
        42: aconst_null
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection int java.lang.Object java.lang.String
      StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object java.lang.Class
        43: aload 7 /* elementType */
        44: .line 529
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
            astore 13 /* convertedElement */
        start local 13 // java.lang.Object convertedElement
        45: .line 532
            aload 9 /* convertedCopy */
            aload 13 /* convertedElement */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        46: .line 533
            goto 53
        47: .line 534
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Collection java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Collection int java.lang.Object java.lang.String java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 14 /* ex */
        start local 14 // java.lang.Throwable ex
        48: .line 535
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 52
        49: .line 536
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Collection type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 537
            ldc "] seems to be read-only - injecting original Collection as-is: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        51: .line 536
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        52: .line 539
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* original */
            areturn
        end local 14 // java.lang.Throwable ex
        53: .line 541
      StackMap locals:
      StackMap stack:
            iload 6 /* originalAllowed */
            ifeq 54
            aload 11 /* element */
            aload 13 /* convertedElement */
            if_acmpne 54
            iconst_1
            goto 55
      StackMap locals:
      StackMap stack:
        54: iconst_0
      StackMap locals:
      StackMap stack: int
        55: istore 6 /* originalAllowed */
        end local 13 // java.lang.Object convertedElement
        end local 12 // java.lang.String indexedPropertyName
        end local 11 // java.lang.Object element
        56: .line 526
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        57: aload 8 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        58: .line 543
            iload 6 /* originalAllowed */
            ifeq 59
            aload 1 /* original */
            goto 60
      StackMap locals:
      StackMap stack:
        59: aload 9 /* convertedCopy */
      StackMap locals:
      StackMap stack: java.util.Collection
        60: areturn
        end local 10 // int i
        end local 9 // java.util.Collection convertedCopy
        end local 8 // java.util.Iterator it
        end local 7 // org.springframework.core.convert.TypeDescriptor elementType
        end local 6 // boolean originalAllowed
        end local 5 // boolean approximable
        end local 4 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 3 // java.lang.Class requiredType
        end local 2 // java.lang.String propertyName
        end local 1 // java.util.Collection original
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   61     0                 this  Lorg/springframework/beans/TypeConverterDelegate;
            0   61     1             original  Ljava/util/Collection<*>;
            0   61     2         propertyName  Ljava/lang/String;
            0   61     3         requiredType  Ljava/lang/Class<*>;
            0   61     4       typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
            3   61     5         approximable  Z
           10   61     6      originalAllowed  Z
           13   61     7          elementType  Lorg/springframework/core/convert/TypeDescriptor;
           17   18     8                   it  Ljava/util/Iterator<*>;
           24   61     8                   it  Ljava/util/Iterator<*>;
           19   24     9                   ex  Ljava/lang/Throwable;
           26   27     9        convertedCopy  Ljava/util/Collection<Ljava/lang/Object;>;
           29   30     9        convertedCopy  Ljava/util/Collection<Ljava/lang/Object;>;
           36   61     9        convertedCopy  Ljava/util/Collection<Ljava/lang/Object;>;
           31   36    10                   ex  Ljava/lang/Throwable;
           37   61    10                    i  I
           39   56    11              element  Ljava/lang/Object;
           40   56    12  indexedPropertyName  Ljava/lang/String;
           45   56    13     convertedElement  Ljava/lang/Object;
           48   53    14                   ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.Throwable
          24    29      30  Class java.lang.Throwable
          45    46      47  Class java.lang.Throwable
    Signature: (Ljava/util/Collection<*>;Ljava/lang/String;Ljava/lang/Class<*>;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Collection<*>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      original        
      propertyName    
      requiredType    
      typeDescriptor  

  private java.util.Map<?, ?> convertToTypedMap(java.util.Map<?, ?>, java.lang.String, java.lang.Class<?>, org.springframework.core.convert.TypeDescriptor);
    descriptor: (Ljava/util/Map;Ljava/lang/String;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=18, args_size=5
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.util.Map original
        start local 2 // java.lang.String propertyName
        start local 3 // java.lang.Class requiredType
        start local 4 // org.springframework.core.convert.TypeDescriptor typeDescriptor
         0: .line 550
            ldc Ljava/util/Map;
            aload 3 /* requiredType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 551
            aload 1 /* original */
            areturn
         2: .line 554
      StackMap locals:
      StackMap stack:
            aload 3 /* requiredType */
            invokestatic org.springframework.core.CollectionFactory.isApproximableMapType:(Ljava/lang/Class;)Z
            istore 5 /* approximable */
        start local 5 // boolean approximable
         3: .line 555
            iload 5 /* approximable */
            ifne 9
            aload 0 /* this */
            aload 3 /* requiredType */
            invokevirtual org.springframework.beans.TypeConverterDelegate.canCreateCopy:(Ljava/lang/Class;)Z
            ifne 9
         4: .line 556
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 8
         5: .line 557
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Custom Map type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 558
            ldc "] does not allow for creating a copy - injecting original Map as-is"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 557
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         8: .line 560
      StackMap locals: int
      StackMap stack:
            aload 1 /* original */
            areturn
         9: .line 563
      StackMap locals:
      StackMap stack:
            aload 3 /* requiredType */
            aload 1 /* original */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            istore 6 /* originalAllowed */
        start local 6 // boolean originalAllowed
        10: .line 564
            aload 4 /* typeDescriptor */
            ifnull 11
            aload 4 /* typeDescriptor */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getMapKeyTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
            goto 12
      StackMap locals: int
      StackMap stack:
        11: aconst_null
      StackMap locals:
      StackMap stack: org.springframework.core.convert.TypeDescriptor
        12: astore 7 /* keyType */
        start local 7 // org.springframework.core.convert.TypeDescriptor keyType
        13: .line 565
            aload 4 /* typeDescriptor */
            ifnull 14
            aload 4 /* typeDescriptor */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getMapValueTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
            goto 15
      StackMap locals: org.springframework.core.convert.TypeDescriptor
      StackMap stack:
        14: aconst_null
      StackMap locals:
      StackMap stack: org.springframework.core.convert.TypeDescriptor
        15: astore 8 /* valueType */
        start local 8 // org.springframework.core.convert.TypeDescriptor valueType
        16: .line 566
            aload 7 /* keyType */
            ifnonnull 19
            aload 8 /* valueType */
            ifnonnull 19
            iload 6 /* originalAllowed */
            ifeq 19
        17: .line 567
            aload 0 /* this */
            getfield org.springframework.beans.TypeConverterDelegate.propertyEditorRegistry:Lorg/springframework/beans/PropertyEditorRegistrySupport;
            aconst_null
            aload 2 /* propertyName */
            invokevirtual org.springframework.beans.PropertyEditorRegistrySupport.hasCustomEditorForElement:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifne 19
        18: .line 568
            aload 1 /* original */
            areturn
        19: .line 573
      StackMap locals: org.springframework.core.convert.TypeDescriptor
      StackMap stack:
            aload 1 /* original */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9 /* it */
        start local 9 // java.util.Iterator it
        20: .line 574
            goto 27
        end local 9 // java.util.Iterator it
        21: .line 575
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10 /* ex */
        start local 10 // java.lang.Throwable ex
        22: .line 576
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 26
        23: .line 577
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Cannot access Map of type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 578
            ldc "] - injecting original Map as-is: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 577
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        26: .line 580
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor top java.lang.Throwable
      StackMap stack:
            aload 1 /* original */
            areturn
        end local 10 // java.lang.Throwable ex
        start local 9 // java.util.Iterator it
        27: .line 585
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator
      StackMap stack:
            iload 5 /* approximable */
            ifeq 30
        28: .line 586
            aload 1 /* original */
            aload 1 /* original */
            invokeinterface java.util.Map.size:()I
            invokestatic org.springframework.core.CollectionFactory.createApproximateMap:(Ljava/lang/Object;I)Ljava/util/Map;
            astore 10 /* convertedCopy */
        start local 10 // java.util.Map convertedCopy
        29: .line 587
            goto 64
        end local 10 // java.util.Map convertedCopy
        30: .line 590
      StackMap locals:
      StackMap stack:
            aload 3 /* requiredType */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.springframework.util.ReflectionUtils.accessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
        31: .line 589
            astore 10 /* convertedCopy */
        start local 10 // java.util.Map convertedCopy
        32: .line 592
            goto 64
        end local 10 // java.util.Map convertedCopy
        33: .line 593
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11 /* ex */
        start local 11 // java.lang.Throwable ex
        34: .line 594
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 38
        35: .line 595
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Cannot create copy of Map type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 596
            ldc "] - injecting original Map as-is: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 595
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        38: .line 598
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator top java.lang.Throwable
      StackMap stack:
            aload 1 /* original */
            areturn
        end local 11 // java.lang.Throwable ex
        start local 10 // java.util.Map convertedCopy
        39: .line 602
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map
      StackMap stack:
            aload 9 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 11 /* entry */
        start local 11 // java.util.Map$Entry entry
        40: .line 603
            aload 11 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            astore 12 /* key */
        start local 12 // java.lang.Object key
        41: .line 604
            aload 11 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            astore 13 /* value */
        start local 13 // java.lang.Object value
        42: .line 605
            aload 0 /* this */
            aload 2 /* propertyName */
            aload 12 /* key */
            invokevirtual org.springframework.beans.TypeConverterDelegate.buildKeyedPropertyName:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
            astore 14 /* keyedPropertyName */
        start local 14 // java.lang.String keyedPropertyName
        43: .line 606
            aload 0 /* this */
            aload 14 /* keyedPropertyName */
            aconst_null
            aload 12 /* key */
        44: .line 607
            aload 7 /* keyType */
            ifnull 45
            aload 7 /* keyType */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
            goto 46
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String
      StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object
        45: aconst_null
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String
      StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object java.lang.Class
        46: aload 7 /* keyType */
        47: .line 606
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
            astore 15 /* convertedKey */
        start local 15 // java.lang.Object convertedKey
        48: .line 608
            aload 0 /* this */
            aload 14 /* keyedPropertyName */
            aconst_null
            aload 13 /* value */
        49: .line 609
            aload 8 /* valueType */
            ifnull 50
            aload 8 /* valueType */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
            goto 51
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String java.lang.Object
      StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object
        50: aconst_null
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String java.lang.Object
      StackMap stack: org.springframework.beans.TypeConverterDelegate java.lang.String null java.lang.Object java.lang.Class
        51: aload 8 /* valueType */
        52: .line 608
            invokevirtual org.springframework.beans.TypeConverterDelegate.convertIfNecessary:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/lang/Object;
            astore 16 /* convertedValue */
        start local 16 // java.lang.Object convertedValue
        53: .line 611
            aload 10 /* convertedCopy */
            aload 15 /* convertedKey */
            aload 16 /* convertedValue */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        54: .line 612
            goto 61
        55: .line 613
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map java.util.Map$Entry java.lang.Object java.lang.Object java.lang.String java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 17 /* ex */
        start local 17 // java.lang.Throwable ex
        56: .line 614
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 60
        57: .line 615
            getstatic org.springframework.beans.TypeConverterDelegate.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Map type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        58: .line 616
            ldc "] seems to be read-only - injecting original Map as-is: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 17 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        59: .line 615
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        60: .line 618
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* original */
            areturn
        end local 17 // java.lang.Throwable ex
        61: .line 620
      StackMap locals:
      StackMap stack:
            iload 6 /* originalAllowed */
            ifeq 62
            aload 12 /* key */
            aload 15 /* convertedKey */
            if_acmpne 62
            aload 13 /* value */
            aload 16 /* convertedValue */
            if_acmpne 62
            iconst_1
            goto 63
      StackMap locals:
      StackMap stack:
        62: iconst_0
      StackMap locals:
      StackMap stack: int
        63: istore 6 /* originalAllowed */
        end local 16 // java.lang.Object convertedValue
        end local 15 // java.lang.Object convertedKey
        end local 14 // java.lang.String keyedPropertyName
        end local 13 // java.lang.Object value
        end local 12 // java.lang.Object key
        end local 11 // java.util.Map$Entry entry
        64: .line 601
      StackMap locals: org.springframework.beans.TypeConverterDelegate java.util.Map java.lang.String java.lang.Class org.springframework.core.convert.TypeDescriptor int int org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.Iterator java.util.Map
      StackMap stack:
            aload 9 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        65: .line 622
            iload 6 /* originalAllowed */
            ifeq 66
            aload 1 /* original */
            goto 67
      StackMap locals:
      StackMap stack:
        66: aload 10 /* convertedCopy */
      StackMap locals:
      StackMap stack: java.util.Map
        67: areturn
        end local 10 // java.util.Map convertedCopy
        end local 9 // java.util.Iterator it
        end local 8 // org.springframework.core.convert.TypeDescriptor valueType
        end local 7 // org.springframework.core.convert.TypeDescriptor keyType
        end local 6 // boolean originalAllowed
        end local 5 // boolean approximable
        end local 4 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 3 // java.lang.Class requiredType
        end local 2 // java.lang.String propertyName
        end local 1 // java.util.Map original
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   68     0               this  Lorg/springframework/beans/TypeConverterDelegate;
            0   68     1           original  Ljava/util/Map<**>;
            0   68     2       propertyName  Ljava/lang/String;
            0   68     3       requiredType  Ljava/lang/Class<*>;
            0   68     4     typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
            3   68     5       approximable  Z
           10   68     6    originalAllowed  Z
           13   68     7            keyType  Lorg/springframework/core/convert/TypeDescriptor;
           16   68     8          valueType  Lorg/springframework/core/convert/TypeDescriptor;
           20   21     9                 it  Ljava/util/Iterator<*>;
           27   68     9                 it  Ljava/util/Iterator<*>;
           22   27    10                 ex  Ljava/lang/Throwable;
           29   30    10      convertedCopy  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
           32   33    10      convertedCopy  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
           39   68    10      convertedCopy  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
           34   39    11                 ex  Ljava/lang/Throwable;
           40   64    11              entry  Ljava/util/Map$Entry<**>;
           41   64    12                key  Ljava/lang/Object;
           42   64    13              value  Ljava/lang/Object;
           43   64    14  keyedPropertyName  Ljava/lang/String;
           48   64    15       convertedKey  Ljava/lang/Object;
           53   64    16     convertedValue  Ljava/lang/Object;
           56   61    17                 ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          19    20      21  Class java.lang.Throwable
          27    32      33  Class java.lang.Throwable
          53    54      55  Class java.lang.Throwable
    Signature: (Ljava/util/Map<**>;Ljava/lang/String;Ljava/lang/Class<*>;Lorg/springframework/core/convert/TypeDescriptor;)Ljava/util/Map<**>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      original        
      propertyName    
      requiredType    
      typeDescriptor  

  private java.lang.String buildIndexedPropertyName(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.String propertyName
        start local 2 // int index
         0: .line 627
            aload 1 /* propertyName */
            ifnull 2
         1: .line 628
            new java.lang.StringBuilder
            dup
            aload 1 /* propertyName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 3
         2: .line 629
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 627
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 2 // int index
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/springframework/beans/TypeConverterDelegate;
            0    4     1  propertyName  Ljava/lang/String;
            0    4     2         index  I
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
              Name  Flags
      propertyName  
      index         

  private java.lang.String buildKeyedPropertyName(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.String propertyName
        start local 2 // java.lang.Object key
         0: .line 634
            aload 1 /* propertyName */
            ifnull 2
         1: .line 635
            new java.lang.StringBuilder
            dup
            aload 1 /* propertyName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 3
         2: .line 636
      StackMap locals:
      StackMap stack:
            aconst_null
         3: .line 634
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 2 // java.lang.Object key
        end local 1 // java.lang.String propertyName
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/springframework/beans/TypeConverterDelegate;
            0    4     1  propertyName  Ljava/lang/String;
            0    4     2           key  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
              Name  Flags
      propertyName  
      key           

  private boolean canCreateCopy(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.beans.TypeConverterDelegate this
        start local 1 // java.lang.Class requiredType
         0: .line 640
            aload 1 /* requiredType */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 3
            aload 1 /* requiredType */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 3
         1: .line 641
            aload 1 /* requiredType */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 3
            aload 1 /* requiredType */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.springframework.util.ClassUtils.hasConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Z
            ifeq 3
         2: .line 640
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.lang.Class requiredType
        end local 0 // org.springframework.beans.TypeConverterDelegate this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/springframework/beans/TypeConverterDelegate;
            0    4     1  requiredType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
              Name  Flags
      requiredType  
}
SourceFile: "TypeConverterDelegate.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map