You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gora.apache.org by "Lewis John McGibbney (JIRA)" <ji...@apache.org> on 2012/11/15 18:00:13 UTC

[jira] [Created] (GORA-180) Better Exception handling post webservices API integration.

Lewis John McGibbney created GORA-180:
-----------------------------------------

             Summary: Better Exception handling post webservices API integration.
                 Key: GORA-180
                 URL: https://issues.apache.org/jira/browse/GORA-180
             Project: Apache Gora
          Issue Type: Improvement
          Components: gora-core
    Affects Versions: 0.3
            Reporter: Lewis John McGibbney
             Fix For: 0.3


This is the result of some off list discussion with Ferdy. The suggestions are

In some instances, we introduced catch-all Exception handling in order to address reviewer suggestion(s) prior to committing the patch. (To was to avoid having to declare "throws Exception" in the entire call stack). However a very important thing about this is to always rethrow the Exception in an exception that *is* declared in the method. Because IOException is a very common type of exception already in may call stacks, you do not have declare "throws IOException" everywhere.

For example, the most crucial classes where this is currently not the case is in GoraRecordReader and GoraRecordWriter. Now it is possible have silent failures when reading or writing records. (Well not completely silent since you have logging in place, but it won't fail the tasks in a MapReduce environment! You really want to fail-fast tasks when there is something wrong in the core Gora code.) 

For example:

GoraRecordWriter 72-74 --> In the catch-block, should have a statement:
throw new IOException(e); //rethrow the Exception to let our calling stack know there is something seriously wrong

GoraRecordReader 121-123 --> In the catch-block, should have a statement:
throw new IOException(e);

Actually there is almost never a good reason to dismiss Exception (by not rethrowing). 

This issues should encompass a review of the changes in line with the suggestions above and simply wrap and rethrow the places where this is currently not the case. Right now I do not know how deeply/widely rooted this problem is and how many areas improvements need to be made but we should be as thorough as possible here to trawl for as many instances as possible.

Thanks Ferdy for the attention to detail... as always (anyone) please add your comments, opinions to this issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira