Improvements to ClientContext for ensureOpen #5258
Merged
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.
These changes are small quality fixes to ensure that ClientContext.ensureOpen is used when it is needed, and not used when it isn't. This fixes an issue seen where the client RPC timeout value is being retrieved from a supplier in a thread pool when returning RPC transports after a client is closed. In these cases, ensureOpen does not need to be checked. However, there were a few context API methods where it was not checked but should have been.
Also, improved the close method to ensure close activities are only called at most once, and made private and renamed an internal method to get the client properties from the ClientInfo object, so it's more clear which properties the method is returning and isn't exposed for misuse.