Kevin Hogeland created HADOOP-12991: ---------------------------------------
Summary: Conflicting default ports in DelegateToFileSystem Key: HADOOP-12991 URL: https://issues.apache.org/jira/browse/HADOOP-12991 Project: Hadoop Common Issue Type: Bug Components: fs Affects Versions: 2.7.2 Reporter: Kevin Hogeland HADOOP-12304 introduced logic to ensure that the {{DelegateToFileSystem}} constructor sets the default port to -1: {code:title=DelegateToFileSystem.java} protected DelegateToFileSystem(URI theUri, FileSystem theFsImpl, Configuration conf, String supportedScheme, boolean authorityRequired) throws IOException, URISyntaxException { super(theUri, supportedScheme, authorityRequired, getDefaultPortIfDefined(theFsImpl)); fsImpl = theFsImpl; fsImpl.initialize(theUri, conf); fsImpl.statistics = getStatistics(); } private static int getDefaultPortIfDefined(FileSystem theFsImpl) { int defaultPort = theFsImpl.getDefaultPort(); return defaultPort != 0 ? defaultPort : -1; } {/code} However, getUriDefaultPort returns 0: {code:title=DelegateToFileSystem.java} public int getUriDefaultPort() { return 0; } {/code} This breaks {{AbstractFileSystem#checkPath}}: {code:title=AbstractFileSystem.java} int thisPort = this.getUri().getPort(); // If using DelegateToFileSystem, this is -1 int thatPort = uri.getPort(); // This is -1 by default in java.net.URI if (thatPort == -1) { thatPort = this.getUriDefaultPort(); // Sets thatPort to 0 } if (thisPort != thatPort) { throw new InvalidPathException("Wrong FS: " + path + ", expected: " + this.getUri()); } {/code} Which breaks any subclasses of {{DelegateToFileSystem}} that don't specify a port (S3n, Wasb(s)). -- This message was sent by Atlassian JIRA (v6.3.4#6332)