UriComponentsBuilder copies query params through MultiValueMap.addAll
Issue: SPR-17256
This commit is contained in:
@@ -705,7 +705,7 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
|
||||
@Override
|
||||
public UriComponentsBuilder queryParams(@Nullable MultiValueMap<String, String> params) {
|
||||
if (params != null) {
|
||||
this.queryParams.putAll(params);
|
||||
this.queryParams.addAll(params);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -922,4 +922,11 @@ public class UriComponentsBuilderTests {
|
||||
assertNotEquals(uri1, uri2);
|
||||
}
|
||||
|
||||
@Test // SPR-17256
|
||||
public void uriComponentsWithQueryParamClone() {
|
||||
UriComponentsBuilder.fromUriString("http://localhost:8081")
|
||||
.uriComponents(UriComponentsBuilder.fromUriString("/{path}?sort={sort}").build())
|
||||
.queryParam("sort", "another_value").build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user