diff --git a/spring-web/src/main/java/org/springframework/http/converter/DefaultHttpMessageConverters.java b/spring-web/src/main/java/org/springframework/http/converter/DefaultHttpMessageConverters.java index 0c50bb36955..f4fdd6c8734 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/DefaultHttpMessageConverters.java +++ b/spring-web/src/main/java/org/springframework/http/converter/DefaultHttpMessageConverters.java @@ -469,19 +469,15 @@ class DefaultHttpMessageConverters implements HttpMessageConverters { } List> partConverters = new ArrayList<>(this.getCustomConverters()); List> allConverters = new ArrayList<>(this.getCustomConverters()); - if (this.registerDefaults) { - partConverters.addAll(this.getCoreConverters()); - allConverters.addAll(this.getBaseConverters()); - if (this.resourceConverter != null) { - allConverters.add(this.resourceConverter); - } + partConverters.addAll(this.getCoreConverters()); + allConverters.addAll(this.getBaseConverters()); + if (this.resourceConverter != null) { + allConverters.add(this.resourceConverter); } if (!partConverters.isEmpty() || !allConverters.isEmpty()) { allConverters.add(new AllEncompassingFormHttpMessageConverter(partConverters)); } - if (this.registerDefaults) { - allConverters.addAll(this.getCoreConverters()); - } + allConverters.addAll(this.getCoreConverters()); if (this.convertersListConfigurer != null) { this.convertersListConfigurer.accept(allConverters); } @@ -582,22 +578,18 @@ class DefaultHttpMessageConverters implements HttpMessageConverters { } List> partConverters = new ArrayList<>(this.getCustomConverters()); List> allConverters = new ArrayList<>(this.getCustomConverters()); - if (this.registerDefaults) { - partConverters.addAll(this.getCoreConverters()); - allConverters.addAll(this.getBaseConverters()); - if (this.resourceConverter != null) { - allConverters.add(this.resourceConverter); - } - if (this.resourceRegionConverter != null) { - allConverters.add(this.resourceRegionConverter); - } + partConverters.addAll(this.getCoreConverters()); + allConverters.addAll(this.getBaseConverters()); + if (this.resourceConverter != null) { + allConverters.add(this.resourceConverter); + } + if (this.resourceRegionConverter != null) { + allConverters.add(this.resourceRegionConverter); } if (!partConverters.isEmpty() || !allConverters.isEmpty()) { allConverters.add(new AllEncompassingFormHttpMessageConverter(partConverters)); } - if (this.registerDefaults) { - allConverters.addAll(this.getCoreConverters()); - } + allConverters.addAll(this.getCoreConverters()); if (this.convertersListConfigurer != null) { this.convertersListConfigurer.accept(allConverters); } diff --git a/spring-web/src/test/java/org/springframework/http/converter/DefaultHttpMessageConvertersTests.java b/spring-web/src/test/java/org/springframework/http/converter/DefaultHttpMessageConvertersTests.java index dcef8369b35..0c0cb5af427 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/DefaultHttpMessageConvertersTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/DefaultHttpMessageConvertersTests.java @@ -177,10 +177,13 @@ class DefaultHttpMessageConvertersTests { } @Test - void shouldNotConfigureOverridesWhenDefaultOff() { + void shouldConfigureOverridesWhenDefaultOff() { var stringConverter = new StringHttpMessageConverter(); var converters = HttpMessageConverters.forClient().withStringConverter(stringConverter).build(); - assertThat(converters).isEmpty(); + assertThat(converters).hasExactlyElementsOfTypes( + StringHttpMessageConverter.class, AllEncompassingFormHttpMessageConverter.class); + var configured = findMessageConverter(StringHttpMessageConverter.class, converters); + assertThat(configured).isEqualTo(stringConverter); } @Test @@ -309,12 +312,14 @@ class DefaultHttpMessageConvertersTests { assertThat(multipartConverter.getPartConverters()).hasAtLeastOneElementOfType(CustomHttpMessageConverter.class); } - @Test - void shouldNotConfigureOverridesWhenDefaultOff() { + void shouldConfigureOverridesWhenDefaultOff() { var stringConverter = new StringHttpMessageConverter(); var converters = HttpMessageConverters.forServer().withStringConverter(stringConverter).build(); - assertThat(converters).isEmpty(); + assertThat(converters).hasExactlyElementsOfTypes( + StringHttpMessageConverter.class, AllEncompassingFormHttpMessageConverter.class); + var configured = findMessageConverter(StringHttpMessageConverter.class, converters); + assertThat(configured).isEqualTo(stringConverter); } @Test