From 636523a2f5a9e9b9a22fdef0c7b33195de5ea28a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9da=20Housni=20Alaoui?= Date: Wed, 17 Sep 2025 11:09:40 +0200 Subject: [PATCH] AbstractMockHttpServletRequestBuilder#buildRequest is not idempotent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See gh-35493 Signed-off-by: Réda Housni Alaoui --- .../request/AbstractMockHttpServletRequestBuilder.java | 8 +++++--- .../AbstractMockHttpServletRequestBuilderTests.java | 9 +++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) 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 c6b4ba460e2..ee9fb856cf5 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,6 +74,7 @@ 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 */ @@ -854,16 +855,17 @@ public abstract class AbstractMockHttpServletRequestBuilder 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 ba677f5266c..8f4707605d7 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 @@ -31,6 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat; * Tests for {@link AbstractMockHttpServletRequestBuilder} * * @author Stephane Nicoll + * @author Réda Housni Alaoui */ class AbstractMockHttpServletRequestBuilderTests { @@ -97,6 +98,14 @@ class AbstractMockHttpServletRequestBuilderTests { } + @Test + void pathInfoIsNotMutatedByBuildMethod() { + TestRequestBuilder builder = new TestRequestBuilder(HttpMethod.GET).uri("/b"); + assertThat(buildRequest(builder).getPathInfo()).isEqualTo("/b"); + builder.uri("/a"); + assertThat(buildRequest(builder).getPathInfo()).isEqualTo("/a"); + } + private MockHttpServletRequest buildRequest(AbstractMockHttpServletRequestBuilder builder) { return builder.buildRequest(this.servletContext); }