Fix HttpMessageConverters configurers support

This commit fixes the `configureMessageConverters` and
`configureMessageConvertersList` behavior.

`configureMessageConverters` was not executing consumers in their order
of registration (but in the reverse order).
`configureMessageConvertersList` was not executing multiple consumers
and was instead executing the first consumer multiple times.

This commit fixes both issues.

Fixes gh-36332
This commit is contained in:
Brian Clozel
2026-02-16 18:48:26 +01:00
parent d712ec3d49
commit b9e190e313
2 changed files with 31 additions and 13 deletions
@@ -225,12 +225,12 @@ class DefaultHttpMessageConverters implements HttpMessageConverters {
}
void addMessageConverterConfigurer(Consumer<HttpMessageConverter<?>> configurer) {
this.configurer = (this.configurer != null) ? configurer.andThen(this.configurer) : configurer;
this.configurer = (this.configurer != null) ? this.configurer.andThen(configurer) : configurer;
}
void addMessageConvertersListConfigurer(Consumer<List<HttpMessageConverter<?>>> configurer) {
this.convertersListConfigurer = (this.convertersListConfigurer != null) ?
this.convertersListConfigurer.andThen(this.convertersListConfigurer) : configurer;
this.convertersListConfigurer.andThen(configurer) : configurer;
}
List<HttpMessageConverter<?>> getBaseConverters() {