Qian Xu created SQOOP-2006:
------------------------------

             Summary: bad smell: NPE check in SQOOP-1995 is not obvious
                 Key: SQOOP-2006
                 URL: https://issues.apache.org/jira/browse/SQOOP-2006
             Project: Sqoop
          Issue Type: Improvement
    Affects Versions: 1.99.5
            Reporter: Qian Xu
            Assignee: Qian Xu
            Priority: Minor
             Fix For: 1.99.5


SQOOP-1995 fixed a NPE, which is adding a schema NPE check in 6 get/set FooData 
methods. [~vybs] explained that the IDF class can be instantiated by 
reflection, which will be constructed without setting a proper schema. The code 
can guard invalid access to null schema. As the getter and setter methods do 
not have anything to do with schema, and there is not a comment to explain 
that, it will be hard to track the reason of having such code after couple of 
month. 

IMO, it seems a not null schema should be an invariant condition for a IDF 
class. Either we check null schema where a NPE happens or use some design by 
contract framework to define contracts. 

I'd suggest move the schema validation to where a NPE happens instead of adding 
it to all getter and setters.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to