[ 
https://issues.apache.org/jira/browse/HADOOP-11156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14154837#comment-14154837
 ] 

Hudson commented on HADOOP-11156:
---------------------------------

SUCCESS: Integrated in Hadoop-Hdfs-trunk #1888 (See 
[https://builds.apache.org/job/Hadoop-Hdfs-trunk/1888/])
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)

Reply via email to