Throw IllegalStateException for invalid port in HierarchicalUriComponents
Prior to this commit, getPort() in HierarchicalUriComponents threw a NumberFormatException for an invalid port supplied as a String, which was inconsistent with exception handling elsewhere in the class as well as within the same method. This commit introduces a try-catch block in getPort() to consistently throw IllegalStateExceptions for ports that cannot be parsed. Closes gh-28521
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -46,6 +46,7 @@ import org.springframework.util.StringUtils;
|
||||
* @author Juergen Hoeller
|
||||
* @author Rossen Stoyanchev
|
||||
* @author Phillip Webb
|
||||
* @author Sam Brannen
|
||||
* @since 3.1.3
|
||||
* @see <a href="https://tools.ietf.org/html/rfc3986#section-1.2.3">Hierarchical URIs</a>
|
||||
*/
|
||||
@@ -192,7 +193,12 @@ final class HierarchicalUriComponents extends UriComponents {
|
||||
throw new IllegalStateException(
|
||||
"The port contains a URI variable but has not been expanded yet: " + this.port);
|
||||
}
|
||||
return Integer.parseInt(this.port);
|
||||
try {
|
||||
return Integer.parseInt(this.port);
|
||||
}
|
||||
catch (NumberFormatException ex) {
|
||||
throw new IllegalStateException("The port must be an integer: " + this.port);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user