fix issue 2485 which occur oom when using async servlet request. #3440
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.
Describe what this PR does / why we need it
There is an issue about it.
Does this pull request fix one issue?
Fixes #2485
Describe how you did it
Extends HandlerInterceptor with a callback method invoked after the start of asynchronous request handling.
When a handler starts an asynchronous request, the DispatcherServlet exits without invoking postHandle and afterCompletion. Then it will not exit the context and clean the thread-local variables for the request. So I extends AsynHandlerInterceptor which is to deal with this situation correctly.
Describe how to verify it
Debug to check context and ctentry.
Add a unit test for Async servlet request, and check the context after response.
Special notes for reviews