difin commented on code in PR #5729:
URL: https://github.com/apache/hive/pull/5729#discussion_r2029356248
##########
service/src/java/org/apache/hive/service/server/HS2ActivePassiveHARegistry.java:
##########
@@ -173,9 +173,9 @@ private void addEndpointToServiceRecord(
private void updateEndpoint(final ServiceRecord srv, final String
endpointName) {
final String instanceUri = srv.get(INSTANCE_URI_CONFIG);
- final String[] tokens = instanceUri.split(":");
- final String hostname = tokens[0];
- final int port = Integer.parseInt(tokens[1]);
+ IPStackUtils.HostPort hostPort = IPStackUtils.splitHostPort(instanceUri);
+ final String hostname = hostPort.getHostname();
+ final int port = hostPort.getPort();
Review Comment:
As I see it the problem with this method is that for IPv6 it works only if
the hostname portion is enclosed in square brackets (e.g. `[::1]:1000`), while
my custom method `IPStackUtils.splitHostPort` works even if it is not enclosed
in square brackets.
While URLs with IPv6 literals are supposed to be enclosed in square
brackets, it requires the code that produces the string that is being parsed
here to enclose IPv6 in square brackets. Also, what we are parsing here is not
a complete URI (URI must contain protocol type such as `http://196.0.0.1:9000`
while we parse only `host:port`), I thought it would be more stable to support
parsing host/port with and without square brackets.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]