Github user maoling commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/587#discussion_r207090394
--- Diff:
src/java/main/org/apache/zookeeper/client/ConnectStringParser.java ---
@@ -68,14 +69,26 @@ public ConnectStringParser(String connectString) {
List<String> hostsList = split(connectString,",");
for (String host : hostsList) {
int port = DEFAULT_PORT;
- int pidx = host.lastIndexOf(':');
- if (pidx >= 0) {
- // otherwise : is at the end of the string, ignore
- if (pidx < host.length() - 1) {
- port = Integer.parseInt(host.substring(pidx + 1));
- }
- host = host.substring(0, pidx);
+ if (!connectString.startsWith("[")) {//IPv4
+ int pidx = host.lastIndexOf(':');
+ if (pidx >= 0) {
+ // otherwise : is at the end of the string, ignore
+ if (pidx < host.length() - 1) {
+ port = Integer.parseInt(host.substring(pidx + 1));
+ }
+ host = host.substring(0, pidx);
+ }
+ } else { //IPv6
--- End diff --
@enixon thanks for your review.after collecting enough suggestions,I will
polish up this issue.
---