[
https://issues.apache.org/jira/browse/HADOOP-2634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12560094#action_12560094
]
Konstantin Shvachko commented on HADOOP-2634:
---------------------------------------------
- Right now getFileInfo() - an *HDFS* variant of getFileStatus() - throws
{code} IOException("File does not exist: " + srcs); {code}
- *LocalFileSystem* does not throw anything but actually returns a valid
FileStatus with some default values.
- *S3FileSystem* throws
{code} IOException(f.toString() + ": No such file or directory."); {code}
- And *kfs* does not seem to be throwing anything just like LocalFileSystem,
please correct me if I'm wrong.
So this is all really inconsistent. And to make it consistent I would vote for
throwing rather than returning null, but throwing FileNotFoundException instead
of the base IOException. Then it would make implementation of exists() rather
simple.
> Deprecate exists() and isDir() to simplify ClientProtocol.
> ----------------------------------------------------------
>
> Key: HADOOP-2634
> URL: https://issues.apache.org/jira/browse/HADOOP-2634
> Project: Hadoop
> Issue Type: Improvement
> Components: dfs
> Affects Versions: 0.15.0
> Reporter: Konstantin Shvachko
>
> ClientProtocol can be simplified by removing two methods
> {code}
> public boolean exists(String src) throws IOException;
> public boolean isDir(String src) throws IOException;
> {code}
> This is a redundant api, which can be implemented in DFSClient as convenience
> methods using
> {code}
> public DFSFileInfo getFileInfo(String src) throws IOException;
> {code}
> Note that we already deprecated several Filesystem method and advised to use
> getFileStatus() instead.
> Should we deprecate them in 0.16?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.