Fix crash if a Context is stopped immediately after creation #120
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.
Description
Context
waits in the initialwaitForControl
inthreadFunction
from when it first is created until it is first allowed to run. Ifstop()
is called on theContext
during this time,ContextStoppedException
will be thrown and nothing will catch it. This leads the Thread to crash, which also brings down the JVM, due to our default exception handler (NB: if it didn't bring down the JVM, it would cause a dead-lock, which wouldn't be any better).ContextStoppedException
is supposed to be called in aContext
's thread when theContext
is stopped, but it is also supposed to be caught in thetry
-catch
inthreadFunction
. This PR fixes the issue by moving the initial call towaitForControl
into thetry
-catch
.How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Be detailed so that your code reviewer can understand exactly how much and what kinds of testing were done, and which might still be worthwhile to do.
main
but passes on this branch.