[ 
https://issues.apache.org/jira/browse/HDFS-303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12750198#action_12750198
 ] 

Boris Shkolnik commented on HDFS-303:
-------------------------------------

I think there are two different problems here. First - systems react 
differently to same error (return value vs. Exception). I think we should fix 
that for sure and I prefer exceptions. The other one is that the systems treat 
specific conditions differently (#4 and #5). This (as Konstantin pointed out) 
depends a lot on the underlying systems.

Taking this into account and also because each of the fixes may have a lot of 
collateral changes (one needs to test against all three projects and also 
manually verify that the new implementation won't break anything), I suggest to 
keep this jira as a base one and create a separate one for each of the points 
(same as  HDFS-538).

> Make contracts of LocalFileSystem and DistributedFileSystem consistent
> ----------------------------------------------------------------------
>
>                 Key: HDFS-303
>                 URL: https://issues.apache.org/jira/browse/HDFS-303
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Tom White
>         Attachments: hadoop-4114.patch, HDFS-303-common-test-case.patch
>
>
> There are a number of edge cases that the two file system implementations 
> handle differently. In particular:
> * When trying to make a directory under an existing file, HDFS throws an 
> IOException while LocalFileSystem doesn't.
> * The FileSytem#listStatus(Path) method returns null for a non-existent file 
> on HDFS, while LocalFileSytem returns an empty FileStatus array.
> * When trying to rename a non-existent path, LocalFileSystem throws an 
> IOException, while HDFS returns false.
> * When renaming a file or directory to a non-existent directory (e.g. /a/b to 
> /c/d, where /c doesn't exist) LocalFileSystem succeeds (returns true) while 
> HDFS fails (false).
> * When renaming a file (or directory) as an existing file (or directory) 
> LocalFileSystem succeeds (returns true) while HDFS fails (false).
> We should document the expected behaviour for these cases in FileSystem's 
> javadoc, and make sure all implementations conform to it.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to