As reported by @odrotbohm, extending AbstractSmartHttpMessageConverter typically requires to override both Class and ResolvableType variants of canRead. This was not intended as SmartHttpMessageConverter interface has default methods doing the conversion from Class parameters to ResolvableType ones, but AbstractHttpMessageConverter overrides it.
We should change canRead/canWrite overrides to Class ones in AbstractSmartHttpMessageConverter that delegate to the ResolvableType variants.