code: @SuppressWarnings("unchecked")
      private ConverterProvider findProvider(Class<?> valueType) {
          if (valueType == null) {
              return null;
          }
  
          if (unsupportedTypes.contains(valueType)) {
              return null;
          }
  
          ConverterProvider provider = providers.get(valueType);
          if (provider != null) {
              return provider;
          }
  
          List<Class<?>> supertypes = getSupertypes(valueType);
          for (Class<?> supertype : supertypes) {
              provider = findProvider(supertype);
              if (provider != null) {
                  LOGGER.debug("Adding shortcut mapping {} -> {}", valueType.getCanonicalName(), provider.converterType().getCanonicalName());
                  providers.put(valueType, provider);
                  return provider;
              }
          }
          unsupportedTypes.add(valueType);
          return null;
      }
docs: ----------------------------------------------------------------------------------------------------------------------