DistributedFileSystem#makeQualified port inconsistency ------------------------------------------------------
Key: HDFS-960 URL: https://issues.apache.org/jira/browse/HDFS-960 Project: Hadoop HDFS Issue Type: Bug Components: hdfs client Affects Versions: 0.20.1, 0.20.2, 0.21.0, 0.22.0 Reporter: Eli Collins DistributedFileSystem#makeQualified returns paths of form hdfs://host:port/path if the port of the given path does not match the default NN port, and paths of form hdfs://host/path if it does. Is this inentional? It breaks programs that assumes DistributedFileSystem#listStatus paths always have the same form. I think the output of listStatus should not depend on whether the default port is being used. Here's the relevant code: {code} /** Normalize paths that explicitly specify the default port. */ public Path makeQualified(Path path) { URI thisUri = this.getUri(); URI thatUri = path.toUri(); String thatAuthority = thatUri.getAuthority(); if (thatUri.getScheme() != null && thatUri.getScheme().equalsIgnoreCase(thisUri.getScheme()) && thatUri.getPort() == NameNode.DEFAULT_PORT && thisUri.getPort() == -1 && thatAuthority.substring(0,thatAuthority.indexOf(":")) .equalsIgnoreCase(thisUri.getAuthority())) { path = new Path(thisUri.getScheme(), thisUri.getAuthority(), thatUri.getPath()); } return super.makeQualified(path); } {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.