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)