While the bug fixed in 3.1.x (gh-39942) has already been addressed as
a side-effect of the changes made in dbb24286, the change is merged
forwards here to improve the consistency of the code between branches.
There was a race condition between the thread that's waiting for
Tomcat to become inactive or the graceful shutdown to be aborted
and the thread that aborts the shutdown and stops Tomcat when the
grace period has elapsed. This race can lead to Tomcat appearing
to have become inactive before the abort of the shutdown is
noticed. When this happens, the result of the shutdown is reported
as IDLE when it should have been REQUESTS_ACTIVE. The consequences
of this are mostly benign although it does affect the log messages
that are emitted. It is also causing some of our graceful shutdown
tests to be flaky.
This commit eliminates the race condition by considering the
state of the aborted flag before logging and returning the result
of the shutdown.
Closes gh-39942
When Spring Framework builds a `RestClient` from a `RestTemplate`, it
will use any `UriTemplateHandler` that has been set on the
`RestTemplate` if the provided `UriTemplateHandler` is also a
`UriBuilderFactory`. Prior to this commit, Spring Boot's
`RestTemplateBuilder#rootUri` set a `UriTemplateHandler` on the created
`RestTemplate`, but it was not a `UriBuilderFactory` so `RestClient`
would not consider it.
With this commit, `RestTemplateBuilder#rootUri` sets a
`UriTemplateHandler` that is also a `UriBuilderFactory` so that any
root URI that is set on the `RestTemplateBuilder` will be applied to a
`RestClient` also.
Fixes gh-39317
Add call to placeholder resolver to ensure property placeholders
are resolved for the `MapBinder`
See gh-39507
Signed-off-by: wanger26 <jakobwanger@gmail.com>
Prior to the introduction of SSL bundles, the `server.ssl` properties
allowed PEM and JKS certificate files types to be mixed when
configuring keystores and truststores. This was lost when adapting to
SSL bundles using `WebServerSslBundle`. This commit restores the
previous behavior for back compatibility.
Fixes gh-39105
Improve `SpringApplication` by removing the unreachable throw statement
in favor of returning an exception from `handleRunFailure`. This commit
also removes the if statements in favor of dedicated catch blocks.
See gh-39107