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

Reply via email to