/** * The dispatcher type {@code javax.servlet.DispatcherType.ASYNC} introduced in Servlet 3.0 means a filter can be * invoked in more than one thread over the course of a single request. This method should return {@code true} if * the filter is currently executing within an asynchronous dispatch. * * @param request the current request * * @deprecated This method is no longer used to determine whether this filter should execute, and will be removed * in a future update. It remains here only to prevent breaking impls that overrode the method. */ @Deprecated protected boolean isAsyncDispatch(HttpServletRequest request) { return getServletRuntime(request).isAsyncDispatch(request); }
@DataProvider(value = { "true", "false" }) @Test @SuppressWarnings("deprecation") public void isAsyncDispatch_delegates_to_ServletRuntime(boolean servletRuntimeResult) { // given RequestTracingFilter filterSpy = spy(getBasicFilter()); doReturn(servletRuntimeMock).when(filterSpy).getServletRuntime(any(HttpServletRequest.class)); doReturn(servletRuntimeResult).when(servletRuntimeMock).isAsyncDispatch(any(HttpServletRequest.class)); // when boolean result = filterSpy.isAsyncDispatch(requestMock); // then assertThat(result).isEqualTo(servletRuntimeResult); verify(filterSpy).getServletRuntime(requestMock); verify(servletRuntimeMock).isAsyncDispatch(requestMock); }