parent
							
								
									7dc522f0d6
								
							
						
					
					
						commit
						2b4cd5cf56
					
				| 
						 | 
					@ -420,13 +420,15 @@ final class HierarchicalUriComponents extends UriComponents {
 | 
				
			||||||
		Assert.state(!this.encodeState.equals(EncodeState.FULLY_ENCODED),
 | 
							Assert.state(!this.encodeState.equals(EncodeState.FULLY_ENCODED),
 | 
				
			||||||
				"URI components already encoded, and could not possibly contain '{' or '}'.");
 | 
									"URI components already encoded, and could not possibly contain '{' or '}'.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Array-based vars rely on the below order..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		String schemeTo = expandUriComponent(getScheme(), uriVariables, this.variableEncoder);
 | 
							String schemeTo = expandUriComponent(getScheme(), uriVariables, this.variableEncoder);
 | 
				
			||||||
		String fragmentTo = expandUriComponent(getFragment(), uriVariables, this.variableEncoder);
 | 
					 | 
				
			||||||
		String userInfoTo = expandUriComponent(this.userInfo, uriVariables, this.variableEncoder);
 | 
							String userInfoTo = expandUriComponent(this.userInfo, uriVariables, this.variableEncoder);
 | 
				
			||||||
		String hostTo = expandUriComponent(this.host, uriVariables, this.variableEncoder);
 | 
							String hostTo = expandUriComponent(this.host, uriVariables, this.variableEncoder);
 | 
				
			||||||
		String portTo = expandUriComponent(this.port, uriVariables, this.variableEncoder);
 | 
							String portTo = expandUriComponent(this.port, uriVariables, this.variableEncoder);
 | 
				
			||||||
		PathComponent pathTo = this.path.expand(uriVariables, this.variableEncoder);
 | 
							PathComponent pathTo = this.path.expand(uriVariables, this.variableEncoder);
 | 
				
			||||||
		MultiValueMap<String, String> queryParamsTo = expandQueryParams(uriVariables);
 | 
							MultiValueMap<String, String> queryParamsTo = expandQueryParams(uriVariables);
 | 
				
			||||||
 | 
							String fragmentTo = expandUriComponent(getFragment(), uriVariables, this.variableEncoder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return new HierarchicalUriComponents(schemeTo, fragmentTo, userInfoTo,
 | 
							return new HierarchicalUriComponents(schemeTo, fragmentTo, userInfoTo,
 | 
				
			||||||
				hostTo, portTo, pathTo, queryParamsTo, this.encodeState, this.variableEncoder);
 | 
									hostTo, portTo, pathTo, queryParamsTo, this.encodeState, this.variableEncoder);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -130,6 +130,15 @@ public class UriComponentsTests {
 | 
				
			||||||
				UriComponentsBuilder.fromUriString("/myurl/?q={{{{").encode().build().toUriString());
 | 
									UriComponentsBuilder.fromUriString("/myurl/?q={{{{").encode().build().toUriString());
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Test // gh-22447
 | 
				
			||||||
 | 
						public void expandWithFragmentOrder() {
 | 
				
			||||||
 | 
							UriComponents uriComponents = UriComponentsBuilder
 | 
				
			||||||
 | 
									.fromUriString("http://{host}/{path}#{fragment}").build()
 | 
				
			||||||
 | 
									.expand("example.com", "foo", "bar");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							assertEquals("http://example.com/foo#bar", uriComponents.toUriString());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test // SPR-12123
 | 
						@Test // SPR-12123
 | 
				
			||||||
	public void port() {
 | 
						public void port() {
 | 
				
			||||||
		UriComponents uri1 = fromUriString("http://example.com:8080/bar").build();
 | 
							UriComponents uri1 = fromUriString("http://example.com:8080/bar").build();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue