Browse Source

Do not clear queryParams UriComponentsBuilder#query

See gh-35628

Signed-off-by: Schäfer, H.H. (Hans Hosea) <HansHosea.Schaefer@ing.de>
pull/35649/head
Schäfer, H.H. (Hans Hosea) 5 months ago committed by rstoyanchev
parent
commit
649bd3ee2d
  1. 3
      spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java
  2. 18
      spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java

3
spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java

@ -552,9 +552,6 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable { @@ -552,9 +552,6 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
}
resetSchemeSpecificPart();
}
else {
this.queryParams.clear();
}
return this;
}

18
spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java

@ -477,6 +477,24 @@ class UriComponentsBuilderTests { @@ -477,6 +477,24 @@ class UriComponentsBuilderTests {
assertThat(result.toUriString()).isEqualTo("https://www.ietf.org");
}
@ParameterizedTest
@EnumSource
void query(final ParserType parserType) {
final UriComponents uriComponents = UriComponentsBuilder.fromUriString("https://example.com/foo?foo=bar", parserType)
.query("baz=qux")
.build();
assertThat(uriComponents.getQueryParams()).isEqualTo(Map.of("foo", List.of("bar"), "baz", List.of("qux")));
}
@ParameterizedTest
@EnumSource
void queryWithNullDoesRetainQueryParameters(final ParserType parserType) {
final UriComponents uriComponents = UriComponentsBuilder.fromUriString("https://example.com/foo?foo=bar", parserType)
.query(null)
.build();
assertThat(uriComponents.getQueryParams()).isEqualTo(Map.of("foo", List.of("bar")));
}
@ParameterizedTest
@EnumSource
void replaceQuery(ParserType parserType) {

Loading…
Cancel
Save