Missing function when starting

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

with Spring Boot 3.4.0 to 3.4.2

Error is :

Caused by: java.lang.NoSuchFieldError: Class org.springframework.util.SystemPropertyUtils does not have member field 'java.lang.Character ESCAPE_CHARACTER'
    at org.springframework.boot.context.properties.bind.PropertySourcesPlaceholdersResolver.<init>(PropertySourcesPlaceholdersResolver.java:51)

This is caused by the package org.springframework.boot.context.properties.bind in version 6.1.16 in

public PropertySourcesPlaceholdersResolver(Iterable<PropertySource<?>> sources, PropertyPlaceholderHelper helper) {
    this.sources = sources;
    this.helper = (helper != null) ? helper
        : new PropertyPlaceholderHelper(SystemPropertyUtils.PLACEHOLDER_PREFIX,
        SystemPropertyUtils.PLACEHOLDER_SUFFIX, SystemPropertyUtils.VALUE_SEPARATOR,
        SystemPropertyUtils.ESCAPE_CHARACTER, true);
}

using package org.springframework.util wich does not include the ESCAPE_CHARACTER property.

It has been added in the version 6.2.x of spring-core: https://github.com/spring-projects/spring-framework/blob/6.2.x/spring-core/src/main/java/org/springframework/util/SystemPropertyUtils.java

Comment From: nosan

I've just verified org.springframework.boot:spring-boot-starter-data-jpa with Spring Boot 3.4.0 up to 3.4.3, and everything works fine.

Sample: gh-44386.zip

Could you please share a sample to reproduce your issue?

Comment From: wilkinsona

@PierreHoury, you cannot use Spring Framework 6.1.x with Spring Boot 3.4.x. It requires Spring Framework 6.2.x. Please correct your dependency versions or use Spring Boot's dependency management to avoid the problem.

Comment From: PierreHoury

You are right, I got a BOM that referenced 6.1.x Spring version. Sorry about that and thank you for the quick response!