⭐ New Features
- Add TWENTY_SEVEN to JavaVersion enum #51422
🐞 Bug Fixes
- JWTs are rejected when issuer-uri is empty and jwk-set-uri is set #52249
- Package manifest attributes are missing for nested jars without directory entries #52244
- OriginTrackedPropertiesLoader drops properties whose name starts with # or ! #52207
- OriginTrackedResource does not implement equals correctly #52205
- Graceful shutdown of Tomcat or Jetty may call back with REQUESTS_ACTIVE when stop is called immediately after shutDownGracefully on an idle server #52195
- Empty system property in TestPropertyValues is cleared instead of being restored to its empty value #52125
- MongoDB fails to connect when credentials contain a space #52121
- NettyWebServer stop may hang when called immediately after shutDownGracefully #52119
- Authentication fails when password configured in spring.elasticsearch.uris contains a colon #52047
- Logging can be lost when a context is paused by the test context framework #51959
- Docker Compose support for MongoDB fails to connect when credentials contain a character that requires URL encoding #51939
- Jersey does not use the endpoint ObjectMapper when Actuator is running on a separate port #51937
- BasicJsonParser mishandles escaped characters in nested lists and maps #51907
- Zero week value conversion fails with 'intValue cannot be extracted from WEEKS' exception #51892
- App fails to start when using DevTools and manually configuring JDBC or R2DBC without spring-boot-jdbc or spring-boot-r2dbc #51872
- Docker Compose support incorrectly recognizes MARIADB_ALLOW_EMPTY_PASSWORD instead of MARIADB_ALLOW_EMPTY_ROOT_PASSWORD #51870
- Auto-configured Kotlinx Serialization JSON codec customization is not applied #51842
- NullPointerException can be thrown when using uber jars due to a race condition in NestedJarFileResources #51744
- DevTools does not detect a reactive web environment #51708
- Connection fails when rabbitmq Docker Compose service is configured to use SSL #51666
- When server.reactive.session.cookie.same-site is not set, session cookies have no SameSite attribute #51636
- OAuth2 resource server ignores authorities-claim-delimiter when set on its own #51619
- In a reactive web application, Cloud Foundry security integration returns a 500 rather than a 503 when the cloud controller URL is unavailable #51613
- Some assertion messages name the wrong parameter #51568
- SBOM-related manifest attributes are missing from Maven-packaged wars #51551
- Docker Compose integration for RabbitMQ skips credential fallbacks when an environment variable has no value #51546
- jarmode tools commands print stacktrace instead of an error message #51540
- Layer temp file is not deleted when layer creation fails #51519
- NestedByteChannel.read(ByteBuffer) incorrectly returns 0 when buffer could not be filled #51515
- Customizer null checks in HTTP client builders assert the wrong attribute #51509
- developmentOnly and testAndDevelopmentOnly configurations do not specify any attributes causing potential resolution problems #51492
- SQL Server Docker Compose integration may duplicate the JDBC URL's encrypt parameter #51467
- SSL host config customizations may be lost during Tomcat initialization #51466
- OAuth2ClientProperties are not available when a user-defined ClientRegistrationRepository bean is provided #51447
- Source is not closed consistently by all JSON marshal testers #51417
- JmsHealthIndicator leaks watchdog threads if start fails immediately #51412
- File handle in SpringBootJoranConfigurator should be closed #51398
- Validation of deprecated io.buildpacks.stack.id is too aggressive #51390
- SSL host config customizations are lost when reloading SSL bundles #51290
- Docker Compose ProcessRunner can hang or leave orphan processes #50963
- Configuration property descriptions may be lost when building incrementally with Gradle #50489
📔 Documentation
- Fix actuator endpoint property names in Javadoc #51869
- Fix broken links from reference documentation to external Javadoc #51815
- Remove reference to AppOptics in the reference guide as it has retired #51807
- Fix broken links #51791
- Update Spring Framework reference links #51750
- Maven plugin documentation incorrectly references remote restart property #51743
- Update testcontainers javadoc links #51739
- Fix documented default of spring.test.database.replace #51709
- Correct Jackson 3 Javadoc links #51660
- Fix typo in deprecated Pushgateway base-url property metadata #51627
- Remove references to Spring Data Geode #51563
- Fix typos in service containers javadoc and reference documentation #51431
- Document support for Java 27 #51424
- Document SAML2 back-off in WebFlux security documentation #51421
- Remove reference to removed SpringBootWebSecurityConfiguration #51411
🔨 Dependency Upgrades
- Upgrade to Build Helper Maven Plugin 3.6.2 #51984
- Upgrade to Cassandra Driver 4.19.4 #52273
- Upgrade to Couchbase Client 3.9.3 #51985
- Upgrade to FreeMarker 2.3.35 #51986
- Upgrade to GraphQL Java 25.1 #52106
- Upgrade to Hibernate 7.2.25.Final #51987
- Upgrade to Hibernate Validator 9.0.2.Final #52212
- Upgrade to Jackson 2 Bom 2.21.7 #51988
- Upgrade to Jackson Bom 3.1.7 #51989
- Upgrade to Jakarta Json Bind 3.0.4 #52213
- Upgrade to Jaybird 6.0.7 #52155
- Upgrade to Jersey 4.0.3 #51992
- Upgrade to Jetty 12.1.14 #51993
- Upgrade to jOOQ 3.19.39 #51994
- Upgrade to Liquibase 5.0.4 #51995
- Upgrade to Lombok 1.18.48 #51996
- Upgrade to Micrometer 1.16.8 #52093
- Upgrade to Micrometer Tracing 1.6.8 #52130
- Upgrade to Netty 4.2.19.Final #51997
- Upgrade to Postgresql 42.7.14 #52107
- Upgrade to R2DBC MariaDB 1.3.2 #51998
- Upgrade to R2DBC MSSQL 1.0.7.RELEASE #51999
- Upgrade to R2DBC Postgresql 1.1.3.RELEASE #52000
- Upgrade to R2DBC Proxy 1.1.7.RELEASE #52214
- Upgrade to Reactor Bom 2025.0.8 #51949
- Upgrade to SLF4J 2.0.20 #52001
- Upgrade to Spring AMQP 4.0.6 #51950
- Upgrade to Spring Batch 6.0.6 #52131
- Upgrade to Spring Data Bom 2025.1.8 #51955
- Upgrade to Spring Framework 7.0.10 #51951
- Upgrade to Spring GraphQL 2.0.6 #52094
- Upgrade to Spring HATEOAS 3.0.6 #52132
- Upgrade to Spring Integration 7.0.7 #52095
- Upgrade to Spring Kafka 4.0.8 #51952
- Upgrade to Spring LDAP 4.0.6 #52210
- Upgrade to Spring Pulsar 2.0.8 #52096
- Upgrade to Spring RESTDocs 4.0.2 #51953
- Upgrade to Spring Security 7.0.8 #52133
- Upgrade to Spring WS 5.0.3 #51954
- Upgrade to Tomcat 11.0.27 #52183
- Upgrade to WebJars Locator Lite 1.1.5 #52003
- Upgrade to XML Maven Plugin 1.2.2 #52004
❤️ Contributors
Thank you to all the contributors who worked on this release:
@2heunxun, @CCCLL, @CHISANW, @COBI-98, @DevJunz, @JunggiKim, @LindseyZ1205, @MacAlsandair, @SebTardif, @dlwldn30, @dmitrysulman, @fabio-grassi, @galenzo17, @icikle, @janwaleed09, @kdomo, @khopland, @ksky8864, @lavinhoque33, @msridhar, @ngocnhan-tran1996, @noojung, @ohchanKyu, @padosol, @piyushrajyadav, @rvullriede, @ryujungkyun, @scordio, @scottfrederick, @timtebeek, @vlsi, @xoruddl, @xxxxxxjun, @yyuneu, and @zhoubiao188