docs: @Override
      public final Converter createConverter(final String converterId)
      {
          checkNull(converterId, "converterId");
          checkEmpty(converterId, "converterId");
  
          final Class<? extends Converter> converterClass =
                  getObjectFromClassMap(converterId, _converterIdToClassMap);
          if (converterClass == null)
          {
              throw new FacesException("Could not find any registered converter-class by converterId : " + converterId);
          }
  
          try
          {
              final Converter converter = createConverterInstance(converterClass);
  
              setConverterProperties(converterClass, converter);
              
              _handleAttachedResourceDependencyAnnotations(FacesContext.getCurrentInstance(), converter);
  
              return converter;
          }
          catch (Exception e)
          {
              log.log(Level.SEVERE, "Could not instantiate converter " + converterClass, e);
              throw new FacesException("Could not instantiate converter: " + converterClass, e);
          }
      }