From 78ec463108762d3c042f11b85409c8a071a5c174 Mon Sep 17 00:00:00 2001 From: eitan613 Date: Tue, 18 Aug 2020 00:10:38 +0300 Subject: [PATCH] fix for issue #25444 To prevent confusion about the build(boolean) method --- .../web/util/UriComponentsBuilder.java | 2 +- .../web/util/UriComponentsBuilderTests.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java index 6ed5f2258461..7c61cb0a6350 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java @@ -440,7 +440,7 @@ public UriComponents build() { /** * Build a {@code UriComponents} instance from the various components * contained in this builder. - * @param encoded whether all the components set in this builder are + * @param encoded asserts whether all the components set in this builder are already * encoded ({@code true}) or not ({@code false}) * @return the URI components */ diff --git a/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java b/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java index 22f9696cd151..41de2d1efc22 100644 --- a/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java @@ -49,6 +49,18 @@ */ class UriComponentsBuilderTests { + @Test + public void fromUriStringQueryParamContainingBracket() throws URISyntaxException { + URI uri = new URI("http://example.com/some/path?query=[fromto]"); + URI finalUri = uri; + assertThatIllegalArgumentException().isThrownBy(() -> UriComponentsBuilder.fromUri(finalUri).build(true)); + //ok, then encode it + uri = UriComponentsBuilder.fromUri(uri).build(false).encode().toUri(); + //confirm encoded + URI checkUri = UriComponentsBuilder.fromUri(uri).build(true).toUri(); + assertThat(uri.toString()).isEqualTo(checkUri.toString()); + } + @Test void plain() throws URISyntaxException { UriComponentsBuilder builder = UriComponentsBuilder.newInstance();