Description
A previously resolved issue appears to have resurfaced in Spring Boot 3.4.6 and 3.5.0.
When resolving configuration properties, ConfigDataEnvironmentContributorPlaceholdersResolver
invokes String.valueOf()
directly, rather than relying on the registered ConversionService
. This bypasses any custom converters and leads to incorrect behavior for types that depend on specific conversion logic — for example, com.google.protobuf.ByteString
, which should use toStringUtf8()
instead of the default toString()
.
This behavior mirrors the issue originally reported in spring-projects/spring-boot#39944 (originally identified in GoogleCloudPlatform/spring-cloud-gcp#2690), and was previously known to affect Spring Boot versions 2.4.x through 3.2.x.
It is also reported in the spring-cloud-gcp repo under GoogleCloudPlatform/spring-cloud-gcp#3821 for investigation.