You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Kai Sasaki (JIRA)" <ji...@apache.org> on 2016/05/31 13:48:13 UTC
[jira] [Commented] (HADOOP-12991) Conflicting default ports in
DelegateToFileSystem
[ https://issues.apache.org/jira/browse/HADOOP-12991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15307748#comment-15307748 ]
Kai Sasaki commented on HADOOP-12991:
-------------------------------------
[~brahmareddy] Could you review this when you have time?
> 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
> Assignee: Kai Sasaki
> Attachments: HADOOP-12991.01.patch
>
>
> 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, {{DelegateToFileSystem#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)
---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org