sync with spring-projects/spring-framework