class org.springframework.core.convert.support.GenericConversionService$Converters
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.core.convert.support.GenericConversionService$Converters
  super_class: java.lang.Object
{
  private final java.util.Set<org.springframework.core.convert.converter.GenericConverter> globalConverters;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/springframework/core/convert/converter/GenericConverter;>;

  private final java.util.Map<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair, org.springframework.core.convert.support.GenericConversionService$ConvertersForPair> converters;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;Lorg/springframework/core/convert/support/GenericConversionService$ConvertersForPair;>;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
         0: .line 500
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 502
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield org.springframework.core.convert.support.GenericConversionService$Converters.globalConverters:Ljava/util/Set;
         2: .line 504
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            bipush 36
            invokespecial java.util.LinkedHashMap.<init>:(I)V
            putfield org.springframework.core.convert.support.GenericConversionService$Converters.converters:Ljava/util/Map;
         3: .line 500
            return
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;

  public void add(org.springframework.core.convert.converter.GenericConverter);
    descriptor: (Lorg/springframework/core/convert/converter/GenericConverter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // org.springframework.core.convert.converter.GenericConverter converter
         0: .line 507
            aload 1 /* converter */
            invokeinterface org.springframework.core.convert.converter.GenericConverter.getConvertibleTypes:()Ljava/util/Set;
            astore 2 /* convertibleTypes */
        start local 2 // java.util.Set convertibleTypes
         1: .line 508
            aload 2 /* convertibleTypes */
            ifnonnull 7
         2: .line 509
            aload 1 /* converter */
            instanceof org.springframework.core.convert.converter.ConditionalConverter
         3: .line 510
            ldc "Only conditional converters may return null convertible types"
         4: .line 509
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         5: .line 511
            aload 0 /* this */
            getfield org.springframework.core.convert.support.GenericConversionService$Converters.globalConverters:Ljava/util/Set;
            aload 1 /* converter */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 512
            goto 12
         7: .line 514
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* convertibleTypes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters org.springframework.core.convert.converter.GenericConverter java.util.Set top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.core.convert.converter.GenericConverter$ConvertiblePair
            astore 3 /* convertiblePair */
        start local 3 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
         9: .line 515
            aload 0 /* this */
            aload 3 /* convertiblePair */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.getMatchableConverters:(Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;)Lorg/springframework/core/convert/support/GenericConversionService$ConvertersForPair;
            astore 5 /* convertersForPair */
        start local 5 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
        10: .line 516
            aload 5 /* convertersForPair */
            aload 1 /* converter */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$ConvertersForPair.add:(Lorg/springframework/core/convert/converter/GenericConverter;)V
        end local 5 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
        end local 3 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
        11: .line 514
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        12: .line 519
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters org.springframework.core.convert.converter.GenericConverter java.util.Set
      StackMap stack:
            return
        end local 2 // java.util.Set convertibleTypes
        end local 1 // org.springframework.core.convert.converter.GenericConverter converter
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0               this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0   13     1          converter  Lorg/springframework/core/convert/converter/GenericConverter;
            1   13     2   convertibleTypes  Ljava/util/Set<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;>;
            9   11     3    convertiblePair  Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;
           10   11     5  convertersForPair  Lorg/springframework/core/convert/support/GenericConversionService$ConvertersForPair;
    MethodParameters:
           Name  Flags
      converter  

  private org.springframework.core.convert.support.GenericConversionService$ConvertersForPair getMatchableConverters(org.springframework.core.convert.converter.GenericConverter$ConvertiblePair);
    descriptor: (Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;)Lorg/springframework/core/convert/support/GenericConversionService$ConvertersForPair;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
         0: .line 522
            aload 0 /* this */
            getfield org.springframework.core.convert.support.GenericConversionService$Converters.converters:Ljava/util/Map;
            aload 1 /* convertiblePair */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.support.GenericConversionService$ConvertersForPair
            astore 2 /* convertersForPair */
        start local 2 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
         1: .line 523
            aload 2 /* convertersForPair */
            ifnonnull 4
         2: .line 524
            new org.springframework.core.convert.support.GenericConversionService$ConvertersForPair
            dup
            invokespecial org.springframework.core.convert.support.GenericConversionService$ConvertersForPair.<init>:()V
            astore 2 /* convertersForPair */
         3: .line 525
            aload 0 /* this */
            getfield org.springframework.core.convert.support.GenericConversionService$Converters.converters:Ljava/util/Map;
            aload 1 /* convertiblePair */
            aload 2 /* convertersForPair */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 527
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$ConvertersForPair
      StackMap stack:
            aload 2 /* convertersForPair */
            areturn
        end local 2 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
        end local 1 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0    5     1    convertiblePair  Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;
            1    5     2  convertersForPair  Lorg/springframework/core/convert/support/GenericConversionService$ConvertersForPair;
    MethodParameters:
                 Name  Flags
      convertiblePair  

  public void remove(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // java.lang.Class sourceType
        start local 2 // java.lang.Class targetType
         0: .line 531
            aload 0 /* this */
            getfield org.springframework.core.convert.support.GenericConversionService$Converters.converters:Ljava/util/Map;
            new org.springframework.core.convert.converter.GenericConverter$ConvertiblePair
            dup
            aload 1 /* sourceType */
            aload 2 /* targetType */
            invokespecial org.springframework.core.convert.converter.GenericConverter$ConvertiblePair.<init>:(Ljava/lang/Class;Ljava/lang/Class;)V
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 532
            return
        end local 2 // java.lang.Class targetType
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0    2     1  sourceType  Ljava/lang/Class<*>;
            0    2     2  targetType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      sourceType  
      targetType  

  public org.springframework.core.convert.converter.GenericConverter find(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor);
    descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // org.springframework.core.convert.TypeDescriptor sourceType
        start local 2 // org.springframework.core.convert.TypeDescriptor targetType
         0: .line 545
            aload 0 /* this */
            aload 1 /* sourceType */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.getClassHierarchy:(Ljava/lang/Class;)Ljava/util/List;
            astore 3 /* sourceCandidates */
        start local 3 // java.util.List sourceCandidates
         1: .line 546
            aload 0 /* this */
            aload 2 /* targetType */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.getClassHierarchy:(Ljava/lang/Class;)Ljava/util/List;
            astore 4 /* targetCandidates */
        start local 4 // java.util.List targetCandidates
         2: .line 547
            aload 3 /* sourceCandidates */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 5 /* sourceCandidate */
        start local 5 // java.lang.Class sourceCandidate
         4: .line 548
            aload 4 /* targetCandidates */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.List java.util.List java.lang.Class java.util.Iterator top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 7 /* targetCandidate */
        start local 7 // java.lang.Class targetCandidate
         6: .line 549
            new org.springframework.core.convert.converter.GenericConverter$ConvertiblePair
            dup
            aload 5 /* sourceCandidate */
            aload 7 /* targetCandidate */
            invokespecial org.springframework.core.convert.converter.GenericConverter$ConvertiblePair.<init>:(Ljava/lang/Class;Ljava/lang/Class;)V
            astore 9 /* convertiblePair */
        start local 9 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
         7: .line 550
            aload 0 /* this */
            aload 1 /* sourceType */
            aload 2 /* targetType */
            aload 9 /* convertiblePair */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.getRegisteredConverter:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;)Lorg/springframework/core/convert/converter/GenericConverter;
            astore 10 /* converter */
        start local 10 // org.springframework.core.convert.converter.GenericConverter converter
         8: .line 551
            aload 10 /* converter */
            ifnull 10
         9: .line 552
            aload 10 /* converter */
            areturn
        end local 10 // org.springframework.core.convert.converter.GenericConverter converter
        end local 9 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
        end local 7 // java.lang.Class targetCandidate
        10: .line 548
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 5 // java.lang.Class sourceCandidate
        11: .line 547
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        12: .line 556
            aconst_null
            areturn
        end local 4 // java.util.List targetCandidates
        end local 3 // java.util.List sourceCandidates
        end local 2 // org.springframework.core.convert.TypeDescriptor targetType
        end local 1 // org.springframework.core.convert.TypeDescriptor sourceType
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0   13     1        sourceType  Lorg/springframework/core/convert/TypeDescriptor;
            0   13     2        targetType  Lorg/springframework/core/convert/TypeDescriptor;
            1   13     3  sourceCandidates  Ljava/util/List<Ljava/lang/Class<*>;>;
            2   13     4  targetCandidates  Ljava/util/List<Ljava/lang/Class<*>;>;
            4   11     5   sourceCandidate  Ljava/lang/Class<*>;
            6   10     7   targetCandidate  Ljava/lang/Class<*>;
            7   10     9   convertiblePair  Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;
            8   10    10         converter  Lorg/springframework/core/convert/converter/GenericConverter;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      sourceType  
      targetType  

  private org.springframework.core.convert.converter.GenericConverter getRegisteredConverter(org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.TypeDescriptor, org.springframework.core.convert.converter.GenericConverter$ConvertiblePair);
    descriptor: (Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;)Lorg/springframework/core/convert/converter/GenericConverter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // org.springframework.core.convert.TypeDescriptor sourceType
        start local 2 // org.springframework.core.convert.TypeDescriptor targetType
        start local 3 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
         0: .line 564
            aload 0 /* this */
            getfield org.springframework.core.convert.support.GenericConversionService$Converters.converters:Ljava/util/Map;
            aload 3 /* convertiblePair */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.support.GenericConversionService$ConvertersForPair
            astore 4 /* convertersForPair */
        start local 4 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
         1: .line 565
            aload 4 /* convertersForPair */
            ifnull 5
         2: .line 566
            aload 4 /* convertersForPair */
            aload 1 /* sourceType */
            aload 2 /* targetType */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$ConvertersForPair.getConverter:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Lorg/springframework/core/convert/converter/GenericConverter;
            astore 5 /* converter */
        start local 5 // org.springframework.core.convert.converter.GenericConverter converter
         3: .line 567
            aload 5 /* converter */
            ifnull 5
         4: .line 568
            aload 5 /* converter */
            areturn
        end local 5 // org.springframework.core.convert.converter.GenericConverter converter
         5: .line 572
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$ConvertersForPair
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.core.convert.support.GenericConversionService$Converters.globalConverters:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.TypeDescriptor org.springframework.core.convert.converter.GenericConverter$ConvertiblePair org.springframework.core.convert.support.GenericConversionService$ConvertersForPair top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.core.convert.converter.GenericConverter
            astore 5 /* globalConverter */
        start local 5 // org.springframework.core.convert.converter.GenericConverter globalConverter
         7: .line 573
            aload 5 /* globalConverter */
            checkcast org.springframework.core.convert.converter.ConditionalConverter
            aload 1 /* sourceType */
            aload 2 /* targetType */
            invokeinterface org.springframework.core.convert.converter.ConditionalConverter.matches:(Lorg/springframework/core/convert/TypeDescriptor;Lorg/springframework/core/convert/TypeDescriptor;)Z
            ifeq 9
         8: .line 574
            aload 5 /* globalConverter */
            areturn
        end local 5 // org.springframework.core.convert.converter.GenericConverter globalConverter
         9: .line 572
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 577
            aconst_null
            areturn
        end local 4 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
        end local 3 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair convertiblePair
        end local 2 // org.springframework.core.convert.TypeDescriptor targetType
        end local 1 // org.springframework.core.convert.TypeDescriptor sourceType
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0   11     1         sourceType  Lorg/springframework/core/convert/TypeDescriptor;
            0   11     2         targetType  Lorg/springframework/core/convert/TypeDescriptor;
            0   11     3    convertiblePair  Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;
            1   11     4  convertersForPair  Lorg/springframework/core/convert/support/GenericConversionService$ConvertersForPair;
            3    5     5          converter  Lorg/springframework/core/convert/converter/GenericConverter;
            7    9     5    globalConverter  Lorg/springframework/core/convert/converter/GenericConverter;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      sourceType       
      targetType       
      convertiblePair  

  private java.util.List<java.lang.Class<?>> getClassHierarchy(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // java.lang.Class type
         0: .line 586
            new java.util.ArrayList
            dup
            bipush 20
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* hierarchy */
        start local 2 // java.util.List hierarchy
         1: .line 587
            new java.util.HashSet
            dup
            bipush 20
            invokespecial java.util.HashSet.<init>:(I)V
            astore 3 /* visited */
        start local 3 // java.util.Set visited
         2: .line 588
            aload 0 /* this */
            iconst_0
            aload 1 /* type */
            invokestatic org.springframework.util.ClassUtils.resolvePrimitiveIfNecessary:(Ljava/lang/Class;)Ljava/lang/Class;
            iconst_0
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addToClassHierarchy:(ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
         3: .line 589
            aload 1 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            istore 4 /* array */
        start local 4 // boolean array
         4: .line 591
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: .line 592
            goto 15
         6: .line 593
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters java.lang.Class java.util.List java.util.Set int int
      StackMap stack:
            aload 2 /* hierarchy */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 6 /* candidate */
        start local 6 // java.lang.Class candidate
         7: .line 594
            iload 4 /* array */
            ifeq 8
            aload 6 /* candidate */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            goto 9
      StackMap locals: java.lang.Class
      StackMap stack:
         8: aload 6 /* candidate */
            invokestatic org.springframework.util.ClassUtils.resolvePrimitiveIfNecessary:(Ljava/lang/Class;)Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         9: astore 6 /* candidate */
        10: .line 595
            aload 6 /* candidate */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 7 /* superclass */
        start local 7 // java.lang.Class superclass
        11: .line 596
            aload 7 /* superclass */
            ifnull 13
            aload 7 /* superclass */
            ldc Ljava/lang/Object;
            if_acmpeq 13
            aload 7 /* superclass */
            ldc Ljava/lang/Enum;
            if_acmpeq 13
        12: .line 597
            aload 0 /* this */
            iload 5 /* i */
            iconst_1
            iadd
            aload 6 /* candidate */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            iload 4 /* array */
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addToClassHierarchy:(ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        13: .line 599
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 6 /* candidate */
            iload 4 /* array */
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addInterfacesToClassHierarchy:(Ljava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        14: .line 600
            iinc 5 /* i */ 1
        end local 7 // java.lang.Class superclass
        end local 6 // java.lang.Class candidate
        15: .line 592
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            aload 2 /* hierarchy */
            invokeinterface java.util.List.size:()I
            if_icmplt 6
        16: .line 603
            ldc Ljava/lang/Enum;
            aload 1 /* type */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 20
        17: .line 604
            aload 0 /* this */
            aload 2 /* hierarchy */
            invokeinterface java.util.List.size:()I
            ldc Ljava/lang/Enum;
            iload 4 /* array */
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addToClassHierarchy:(ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        18: .line 605
            aload 0 /* this */
            aload 2 /* hierarchy */
            invokeinterface java.util.List.size:()I
            ldc Ljava/lang/Enum;
            iconst_0
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addToClassHierarchy:(ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        19: .line 606
            aload 0 /* this */
            ldc Ljava/lang/Enum;
            iload 4 /* array */
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addInterfacesToClassHierarchy:(Ljava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        20: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* hierarchy */
            invokeinterface java.util.List.size:()I
            ldc Ljava/lang/Object;
            iload 4 /* array */
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addToClassHierarchy:(ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        21: .line 610
            aload 0 /* this */
            aload 2 /* hierarchy */
            invokeinterface java.util.List.size:()I
            ldc Ljava/lang/Object;
            iconst_0
            aload 2 /* hierarchy */
            aload 3 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addToClassHierarchy:(ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        22: .line 611
            aload 2 /* hierarchy */
            areturn
        end local 5 // int i
        end local 4 // boolean array
        end local 3 // java.util.Set visited
        end local 2 // java.util.List hierarchy
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0   23     1        type  Ljava/lang/Class<*>;
            1   23     2   hierarchy  Ljava/util/List<Ljava/lang/Class<*>;>;
            2   23     3     visited  Ljava/util/Set<Ljava/lang/Class<*>;>;
            4   23     4       array  Z
            5   23     5           i  I
            7   15     6   candidate  Ljava/lang/Class<*>;
           11   15     7  superclass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
      Name  Flags
      type  

  private void addInterfacesToClassHierarchy(java.lang.Class<?>, boolean, java.util.List<java.lang.Class<?>>, java.util.Set<java.lang.Class<?>>);
    descriptor: (Ljava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // java.lang.Class type
        start local 2 // boolean asArray
        start local 3 // java.util.List hierarchy
        start local 4 // java.util.Set visited
         0: .line 617
            aload 1 /* type */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 4
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters java.lang.Class int java.util.List java.util.Set top int int java.lang.Class[]
      StackMap stack:
         1: aload 8
            iload 6
            aaload
            astore 5 /* implementedInterface */
        start local 5 // java.lang.Class implementedInterface
         2: .line 618
            aload 0 /* this */
            aload 3 /* hierarchy */
            invokeinterface java.util.List.size:()I
            aload 5 /* implementedInterface */
            iload 2 /* asArray */
            aload 3 /* hierarchy */
            aload 4 /* visited */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.addToClassHierarchy:(ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
        end local 5 // java.lang.Class implementedInterface
         3: .line 617
            iinc 6 1
      StackMap locals:
      StackMap stack:
         4: iload 6
            iload 7
            if_icmplt 1
         5: .line 620
            return
        end local 4 // java.util.Set visited
        end local 3 // java.util.List hierarchy
        end local 2 // boolean asArray
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    6     0                  this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0    6     1                  type  Ljava/lang/Class<*>;
            0    6     2               asArray  Z
            0    6     3             hierarchy  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    6     4               visited  Ljava/util/Set<Ljava/lang/Class<*>;>;
            2    3     5  implementedInterface  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;ZLjava/util/List<Ljava/lang/Class<*>;>;Ljava/util/Set<Ljava/lang/Class<*>;>;)V
    MethodParameters:
           Name  Flags
      type       
      asArray    
      hierarchy  
      visited    

  private void addToClassHierarchy(int, java.lang.Class<?>, boolean, java.util.List<java.lang.Class<?>>, java.util.Set<java.lang.Class<?>>);
    descriptor: (ILjava/lang/Class;ZLjava/util/List;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
        start local 1 // int index
        start local 2 // java.lang.Class type
        start local 3 // boolean asArray
        start local 4 // java.util.List hierarchy
        start local 5 // java.util.Set visited
         0: .line 625
            iload 3 /* asArray */
            ifeq 2
         1: .line 626
            aload 2 /* type */
            iconst_0
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* type */
         2: .line 628
      StackMap locals:
      StackMap stack:
            aload 5 /* visited */
            aload 2 /* type */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 629
            aload 4 /* hierarchy */
            iload 1 /* index */
            aload 2 /* type */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
         4: .line 631
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.Set visited
        end local 4 // java.util.List hierarchy
        end local 3 // boolean asArray
        end local 2 // java.lang.Class type
        end local 1 // int index
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            0    5     1      index  I
            0    5     2       type  Ljava/lang/Class<*>;
            0    5     3    asArray  Z
            0    5     4  hierarchy  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    5     5    visited  Ljava/util/Set<Ljava/lang/Class<*>;>;
    Signature: (ILjava/lang/Class<*>;ZLjava/util/List<Ljava/lang/Class<*>;>;Ljava/util/Set<Ljava/lang/Class<*>;>;)V
    MethodParameters:
           Name  Flags
      index      
      type       
      asArray    
      hierarchy  
      visited    

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
         0: .line 635
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 636
            aload 1 /* builder */
            ldc "ConversionService converters =\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 637
            aload 0 /* this */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$Converters.getConverterStrings:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* converterString */
        start local 2 // java.lang.String converterString
         4: .line 638
            aload 1 /* builder */
            bipush 9
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* converterString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.lang.String converterString
         5: .line 637
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 640
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            1    7     1          builder  Ljava/lang/StringBuilder;
            4    5     2  converterString  Ljava/lang/String;

  private java.util.List<java.lang.String> getConverterStrings();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
         0: .line 644
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* converterStrings */
        start local 1 // java.util.List converterStrings
         1: .line 645
            aload 0 /* this */
            getfield org.springframework.core.convert.support.GenericConversionService$Converters.converters:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.springframework.core.convert.support.GenericConversionService$Converters java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.core.convert.support.GenericConversionService$ConvertersForPair
            astore 2 /* convertersForPair */
        start local 2 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
         3: .line 646
            aload 1 /* converterStrings */
            aload 2 /* convertersForPair */
            invokevirtual org.springframework.core.convert.support.GenericConversionService$ConvertersForPair.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.springframework.core.convert.support.GenericConversionService$ConvertersForPair convertersForPair
         4: .line 645
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 648
            aload 1 /* converterStrings */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         6: .line 649
            aload 1 /* converterStrings */
            areturn
        end local 1 // java.util.List converterStrings
        end local 0 // org.springframework.core.convert.support.GenericConversionService$Converters this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/springframework/core/convert/support/GenericConversionService$Converters;
            1    7     1   converterStrings  Ljava/util/List<Ljava/lang/String;>;
            3    4     2  convertersForPair  Lorg/springframework/core/convert/support/GenericConversionService$ConvertersForPair;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;
}
SourceFile: "GenericConversionService.java"
NestHost: org.springframework.core.convert.support.GenericConversionService
InnerClasses:
  public final ConvertiblePair = org.springframework.core.convert.converter.GenericConverter$ConvertiblePair of org.springframework.core.convert.converter.GenericConverter
  private Converters = org.springframework.core.convert.support.GenericConversionService$Converters of org.springframework.core.convert.support.GenericConversionService
  private ConvertersForPair = org.springframework.core.convert.support.GenericConversionService$ConvertersForPair of org.springframework.core.convert.support.GenericConversionService