Class<?> currentClass = classQueue.removeLast(); Map<Class<?>, MatchableConverters> converters = getTargetConvertersForSource(currentClass); GenericConverter converter = getMatchingConverterForTarget(sourceType, targetType, converters); if (converter != null) { return converter; return getMatchingConverterForTarget(sourceType, targetType, objectConverters); Class<?> currentClass = classQueue.removeLast(); Map<Class<?>, MatchableConverters> converters = getTargetConvertersForSource(currentClass); GenericConverter converter = getMatchingConverterForTarget(sourceType, targetType, converters); if (converter != null) { return converter; Class<?> currentClass = classQueue.removeLast(); Map<Class<?>, MatchableConverters> converters = getTargetConvertersForSource(currentClass); GenericConverter converter = getMatchingConverterForTarget(sourceType, targetType, converters); if (converter != null) { return converter; GenericConverter converter = getMatchingConverterForTarget(sourceType, targetType, converters); if (converter != null) { return converter; return getMatchingConverterForTarget(sourceType, targetType, objectConverters);