hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tsz Wo (Nicholas), SZE (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HDFS-717) Proposal for exceptions thrown by FileContext and Abstract File System
Date Wed, 04 Nov 2009 22:33:32 GMT

    [ https://issues.apache.org/jira/browse/HDFS-717?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12773676#action_12773676

Tsz Wo (Nicholas), SZE commented on HDFS-717:

> On the FileSystemOperationException ...

I am suggesting
* open(...) throws SystemException, RemoteException, InterruptedIOException, AccessControlException,
InvalidPathNameException, FileNotFoundException, IsDirectoryException

SystemException, RemoteException and InterruptedIOException should be thrown by all methods.
 Then, the specific FileSystemOperationException subclasses are listed out explicitly.  Other
subclasses of IOException should never be thrown.

> ... This will prevents us from using any existing IOExceptions like FileNotFoundException.

I actually suggest create a new o.a.h.fs.FileNotFoundException, which extends FileSystemOperationException
and prevent using java.io.FileNotFoundException because java.io.FileNotFoundException is overloaded
with different meaning.  The following is quoted from the [java.io.FileNotFoundException API|http://java.sun.com/javase/6/docs/api/].
It will also be thrown by these constructors if the file does exist but for some reason is
inaccessible, for example when an attempt is made to open a read-only file for writing. 

> Proposal for exceptions thrown by FileContext and Abstract File System
> ----------------------------------------------------------------------
>                 Key: HDFS-717
>                 URL: https://issues.apache.org/jira/browse/HDFS-717
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Jitendra Nath Pandey
>            Assignee: Jitendra Nath Pandey
>             Fix For: 0.22.0
> Currently the APIs in FileContext throw only IOException. Going forward these APIs will
throw more specific exceptions.
> This jira proposes following hierarchy of exceptions to be thrown by FileContext and
AFS (Abstract File System) classes.
> InterruptedException  (java.lang.InterruptedException)
> IOException
>                 /* Following exceptions extend IOException */
>                 FileNotFoundException
>                 FileAlreadyExistsException
>                 DirectoryNotEmptyException
>                 NotDirectoryException
>                 AccessDeniedException
>                 IsDirectoryException
>                 InvalidPathNameException
>                 FileSystemException
>                                      /* Following exceptions extend FileSystemException
>                                      FileSystemNotReadyException
>                                      ReadOnlyFileSystemException
>                                      QuotaExceededException
>                                      OutOfSpaceException
>                 RemoteException   (java.rmi.RemoteException)
> Most of the IOExceptions above are caused by invalid user input, while FileSystemException
is thrown when FS is in such a state that the requested operation cannot proceed.
> Please note that the proposed RemoteException is from standard java rmi package, which
also extends IOException.
> HDFS throws many exceptions which are not in the above list. The DFSClient will unwrap
the exceptions thrown by HDFS, and any exception not in the above list will be thrown as IOException
or FileSystemException.

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

View raw message