-
Notifications
You must be signed in to change notification settings - Fork 40.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Don't add runtime shutdown hook till app with hook enabled is run
Previously, the runtime shutdown hook was added as soon as a shutdown handler was registered. This causes a memory leak in a war deployment when the application is undeployed as LoggingApplicationListener always registers a shutdown handler so the runtime shutdown hook was always registered. This commit updates the shutdown hook so that the runtime shutdown hook is only allowed to be added once run() has been called on a SpringApplication with the shutdown hook enabled. This approach allows the registerShutdownHook flag on SpringApplication to be a central point of control for the registration of the runtime shutdown hook. When that flag is set to false, for example by SpringBootServletInitializer, the runtime shutdown hook will not be registered, irrespective of whether other code uses the public API to add a shutdown handler. An alternative approach of stopping LoggingApplicationListener from adding its shutdown handler – for example by adding logging.register-shutdown-hook=false to the environment – was considered. This approach was rejected in favor of the centralized approach described above as it would require every caller that adds a shutdown handler to deal with the problem. Closes gh-37096
- Loading branch information
1 parent
d9207fc
commit c187bd9
Showing
3 changed files
with
24 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters