diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java index ee9fb856cf5..1a3fe0684f8 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java @@ -74,7 +74,6 @@ import org.springframework.web.util.UrlPathHelper; * @author Arjen Poutsma * @author Sam Brannen * @author Kamill Sokol - * @author Réda Housni Alaoui * @since 6.2 * @param a self reference to the builder type */ @@ -855,17 +854,14 @@ public abstract class AbstractMockHttpServletRequestBuilder "Invalid servlet path [" + this.servletPath + "] for request URI [" + requestUri + "]"); + String other = requestUri.substring(this.contextPath.length() + this.servletPath.length()); + path = (StringUtils.hasText(other) ? UrlPathHelper.defaultInstance.decodeRequestString(request, other) : null); } - request.setPathInfo(pathInfoToUse); + request.setPathInfo(path); } private void addRequestParams(MockHttpServletRequest request, MultiValueMap map) { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilderTests.java index 8f4707605d7..70680b7fc37 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilderTests.java @@ -98,7 +98,7 @@ class AbstractMockHttpServletRequestBuilderTests { } - @Test + @Test // gh-35493 void pathInfoIsNotMutatedByBuildMethod() { TestRequestBuilder builder = new TestRequestBuilder(HttpMethod.GET).uri("/b"); assertThat(buildRequest(builder).getPathInfo()).isEqualTo("/b");