fix: jvm hangs when System.exit or bugsnag.close is not called #157
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Goal
The fix to prevent a resource leak in #143 improved the shutdown hook to prevent the resource leak (calling
ExceptionHandler.disable
andconfig.delivery.close
) but also reverted the task scheduler from running as a daemon thread. Therefore, in a console app, or similar, which doesn't explicitly callSystem.exit
, the JVM waits indefinitely for thesessionExecutorService
to stop before triggering the shutdown hook.This PR should be the benefits of both #143 and #121 to gracefully shutdown in both use cases.
Fixes #151
Changeset
DaemonThreadFactory
(removed in Remove use of daemon threads, fixing potential resource leak #143)System.exit
calls from the Spring Boot example as the explicit call should not be required.Testing
System.exit
call to test this in future.