Browse Source

Fix JsonConverterDelegate initialization in RestTestClient

If the RestClient was built with default message converters, then
in mutate, the saved builder also has 0 converters, and adding a
interferes with default registrations.

We need to check if there are no converters at all, and if so
use the default registrations.

See gh-35793
pull/35808/merge
rstoyanchev 4 weeks ago
parent
commit
adffd3dcf6
  1. 5
      spring-test/src/main/java/org/springframework/test/web/servlet/client/DefaultRestTestClient.java

5
spring-test/src/main/java/org/springframework/test/web/servlet/client/DefaultRestTestClient.java

@ -144,9 +144,10 @@ class DefaultRestTestClient implements RestTestClient { @@ -144,9 +144,10 @@ class DefaultRestTestClient implements RestTestClient {
client.mutate()
.configureMessageConverters(convertersBuilder -> {
HttpMessageConverters converters = convertersBuilder.build();
if (converters.iterator().hasNext()) {
this.converter = JsonConverterDelegate.of(converters);
if (converters.isEmpty()) {
converters = HttpMessageConverters.forClient().registerDefaults().build();
}
this.converter = JsonConverterDelegate.of(converters);
})
.build();
}

Loading…
Cancel
Save