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.
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