AbstractHttpMessageConverter has a constructor (Charset defaultCharset, MediaType... supportedMediaTypes).
AbstractGenericHttpMessageConverter extends it, but provides no access to that constructor.
That forces implementors to call setDefaultCharset in their constructors, which gives a this-escape warning since Java 18 unless they are declared final.