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
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
PatternParseException.toDetailedString() return a String
with a mark to specify the error position in the pattern.
The mark takes place in the second line in the String
returned. Because PatternParseFailureAnalyzer.analyze
appended "Invalid mapping pattern detected:" at the
beginning of the returned String, the mark was not well
positioned.
Now, a "\n" is inserted after "Invalid mapping pattern detected:"
and the mark is well positioned
See gh-38944
Update `SpringApplication` so that `ApplicationRunner` and
`CommandLineRunner` beans are not considered from the parent
`ApplicationContext`.
The restores the behavior that applied before commit 7d6532cac4
whilst still retaining the correct run order.
Fixes gh-38647
1. remove unused imports
2. remove redundant semicolon
3. remove empty class body
4. remove redundant 'constructor' keyword
5. remove redundant 'Unit' return type
6. use non-null type if possible
See gh-38708
Prior to this commit, `@Order` annotation on `@Bean` method was not
considered for `CommandLineRunner` and `ApplicationRunner`.
This commit introduces a `Runner` marker interface and uses it to
retrieve the runner beans. As a result, it enables the use of `@Order`
annotations on `@Bean` methods for both `CommandLineRunner` and
`ApplicationRunner`.
Signed-off-by: Tadaya Tsuyukubo <tadaya@ttddyy.net>
See gh-37905