File tree Expand file tree Collapse file tree 2 files changed +15
-9
lines changed
main/java/org/springframework/web/util
test/java/org/springframework/web/util Expand file tree Collapse file tree 2 files changed +15
-9
lines changed Original file line number Diff line number Diff line change @@ -228,16 +228,14 @@ public DefaultUriBuilder(String uriTemplate) {
228
228
}
229
229
230
230
private UriComponentsBuilder initUriComponentsBuilder (String uriTemplate ) {
231
-
231
+ UriComponentsBuilder result ;
232
232
if (StringUtils .isEmpty (uriTemplate )) {
233
- return baseUri != null ? baseUri .cloneBuilder () : UriComponentsBuilder .newInstance ();
233
+ result = baseUri != null ? baseUri .cloneBuilder () : UriComponentsBuilder .newInstance ();
234
234
}
235
-
236
- UriComponentsBuilder result ;
237
- if (baseUri != null ) {
238
- UriComponentsBuilder uricBuilder = UriComponentsBuilder .fromUriString (uriTemplate );
239
- UriComponents uric = uricBuilder .build ();
240
- result = uric .getHost () == null ? baseUri .cloneBuilder ().uriComponents (uric ) : uricBuilder ;
235
+ else if (baseUri != null ) {
236
+ UriComponentsBuilder builder = UriComponentsBuilder .fromUriString (uriTemplate );
237
+ UriComponents uri = builder .build ();
238
+ result = uri .getHost () == null ? baseUri .cloneBuilder ().uriComponents (uri ) : builder ;
241
239
}
242
240
else {
243
241
result = UriComponentsBuilder .fromUriString (uriTemplate );
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ public class DefaultUriBuilderFactoryTests {
35
35
@ Test
36
36
public void defaultSettings () {
37
37
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory ();
38
- URI uri = factory .uriString ("/foo" ). pathSegment ( " {id}" ).build ("a/b" );
38
+ URI uri = factory .uriString ("/foo/ {id}" ).build ("a/b" );
39
39
assertEquals ("/foo/a%2Fb" , uri .toString ());
40
40
}
41
41
@@ -126,6 +126,14 @@ public void encodingValuesOnly() {
126
126
assertEquals (expected , uriBuilder .build (singletonMap ("id" , id )).toString ());
127
127
}
128
128
129
+ @ Test
130
+ public void encodingTemplateAndValuesSpr17465 () {
131
+ DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory ();
132
+ factory .setEncodingMode (EncodingMode .TEMPLATE_AND_VALUES );
133
+ URI uri = factory .builder ().path ("/foo/{id}" ).build ("a/b" );
134
+ assertEquals ("/foo/a%2Fb" , uri .toString ());
135
+ }
136
+
129
137
@ Test
130
138
public void encodingValuesOnlySpr14147 () {
131
139
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory ();
You can’t perform that action at this time.
0 commit comments