From adffd3dcf6edd22167e652371f5f5ab5eb9afd5b Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Tue, 18 Nov 2025 15:43:53 +0000 Subject: [PATCH] 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 --- .../test/web/servlet/client/DefaultRestTestClient.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/client/DefaultRestTestClient.java b/spring-test/src/main/java/org/springframework/test/web/servlet/client/DefaultRestTestClient.java index bf8f0517bad..39f17ba9e5b 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/client/DefaultRestTestClient.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/client/DefaultRestTestClient.java @@ -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(); }