[ https://issues.apache.org/jira/browse/HADOOP-11156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14154682#comment-14154682 ]
Hudson commented on HADOOP-11156: --------------------------------- FAILURE: Integrated in Hadoop-Yarn-trunk #697 (See [https://builds.apache.org/job/Hadoop-Yarn-trunk/697/]) HADOOP-11156. DelegateToFileSystem should implement getFsStatus(final Path f). Contributed by Zhihai Xu. (wang: rev d7075ada5d3019a8c520d34bfddb0cd73a449343) * hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DelegateToFileSystem.java * hadoop-common-project/hadoop-common/CHANGES.txt > DelegateToFileSystem should implement getFsStatus(final Path f). > ---------------------------------------------------------------- > > Key: HADOOP-11156 > URL: https://issues.apache.org/jira/browse/HADOOP-11156 > Project: Hadoop Common > Issue Type: Bug > Components: fs > Reporter: zhihai xu > Assignee: zhihai xu > Fix For: 2.7.0 > > Attachments: HADOOP-11156.000.patch > > > DelegateToFileSystem only implemented getFsStatus() and didn't implement > getFsStatus(final Path f). So if you call getFsStatus(final Path f), it will > call AbstractFileSystem.getFsStatus(final Path f) which will also call > DelegateToFileSystem.getFsStatus(). It should implement getFsStatus(final > Path f) to call fsImpl.getStatus(f) instead of calling fsImpl.getStatus() > from getFsStatus(). > Also based on the following description for FileContext.getFsStatus: > {code} > /** > * Returns a status object describing the use and capacity of the > * file system denoted by the Parh argument p. > * If the file system has multiple partitions, the > * use and capacity of the partition pointed to by the specified > * path is reflected. > * > * @param f Path for which status should be obtained. null means the > * root partition of the default file system. > * > * @return a FsStatus object > * > * @throws AccessControlException If access is denied > * @throws FileNotFoundException If <code>f</code> does not exist > * @throws UnsupportedFileSystemException If file system for <code>f</code> > is > * not supported > * @throws IOException If an I/O error occurred > * > * Exceptions applicable to file systems accessed over RPC: > * @throws RpcClientException If an exception occurred in the RPC client > * @throws RpcServerException If an exception occurred in the RPC server > * @throws UnexpectedServerException If server implementation throws > * undeclared exception to RPC server > */ > public FsStatus getFsStatus(final Path f) throws AccessControlException, > FileNotFoundException, UnsupportedFileSystemException, IOException { > if (f == null) { > return defaultFS.getFsStatus(); > } > final Path absF = fixRelativePart(f); > return new FSLinkResolver<FsStatus>() { > @Override > public FsStatus next(final AbstractFileSystem fs, final Path p) > throws IOException, UnresolvedLinkException { > return fs.getFsStatus(p); > } > }.resolve(this, absF); > } > {code} > we should differentiate getFsStatus(final Path f) from getFsStatus() in > DelegateToFileSystem. -- This message was sent by Atlassian JIRA (v6.3.4#6332)