[
https://issues.apache.org/jira/browse/HDFS-717?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12802499#action_12802499
]
Doug Cutting commented on HDFS-717:
-----------------------------------
To facilitate an eventual switch to Avro, protocols should specify the most
precise set of exceptions in their throws clauses. Simply specifying
IOException is not sufficient, since Avro will then serialize and deserialize
IOException rather than a more specific subclass. Most RPC systems (Avro
included) do not implement inheritance, so parameters, return types and
exceptions in protocols should ideally be concrete, not base classes or
interfaces.
> 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.