diff --git a/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java b/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java index a775b8b504e..7aec81b07c2 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -145,7 +145,7 @@ public abstract class OncePerRequestFilter extends GenericFilterBean { * @see WebAsyncManager#hasConcurrentResult() */ protected boolean isAsyncDispatch(HttpServletRequest request) { - return WebAsyncUtils.getAsyncManager(request).hasConcurrentResult(); + return request.getDispatcherType().equals(DispatcherType.ASYNC); } /** diff --git a/spring-web/src/test/java/org/springframework/web/filter/CharacterEncodingFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/CharacterEncodingFilterTests.java index 19bd055b006..8ab956d66f4 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/CharacterEncodingFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/CharacterEncodingFilterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.springframework.web.filter; +import javax.servlet.DispatcherType; import javax.servlet.FilterChain; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -51,6 +52,7 @@ public class CharacterEncodingFilterTests { request.setCharacterEncoding(ENCODING); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); + given(request.getDispatcherType()).willReturn(DispatcherType.REQUEST); HttpServletResponse response = mock(HttpServletResponse.class); FilterChain filterChain = mock(FilterChain.class); @@ -71,6 +73,7 @@ public class CharacterEncodingFilterTests { given(request.getCharacterEncoding()).willReturn(null); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); + given(request.getDispatcherType()).willReturn(DispatcherType.REQUEST); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -92,6 +95,7 @@ public class CharacterEncodingFilterTests { given(request.getCharacterEncoding()).willReturn(ENCODING); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); + given(request.getDispatcherType()).willReturn(DispatcherType.REQUEST); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -112,6 +116,7 @@ public class CharacterEncodingFilterTests { given(request.getCharacterEncoding()).willReturn(null); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); + given(request.getDispatcherType()).willReturn(DispatcherType.REQUEST); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -135,6 +140,7 @@ public class CharacterEncodingFilterTests { given(request.getCharacterEncoding()).willReturn(null); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(CharacterEncodingFilter.class.getName()))).willReturn(null); + given(request.getDispatcherType()).willReturn(DispatcherType.REQUEST); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -156,6 +162,7 @@ public class CharacterEncodingFilterTests { request.setCharacterEncoding(ENCODING); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); + given(request.getDispatcherType()).willReturn(DispatcherType.REQUEST); HttpServletResponse response = mock(HttpServletResponse.class); FilterChain filterChain = mock(FilterChain.class);