SQOOP-1773: Sqoop2: ClassAvailable validator null handling (Abraham Elmahrek via Jarek Jarcec Cecho)
Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/5d0862f8 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/5d0862f8 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/5d0862f8 Branch: refs/heads/cdh5-1.99.4 Commit: 5d0862f8272e09fbffcd3f3fa4541772eecb641c Parents: 0b33c54 Author: Jarek Jarcec Cecho <[email protected]> Authored: Thu Nov 20 16:47:30 2014 -0800 Committer: Abraham Elmahrek <[email protected]> Committed: Fri Nov 21 17:43:13 2014 -0800 ---------------------------------------------------------------------- .../sqoop/validation/validators/ClassAvailable.java | 12 ++++++++---- .../sqoop/validation/validators/TestClassAvailable.java | 5 +++++ 2 files changed, 13 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/5d0862f8/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java b/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java index 371a6b7..ed7434f 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java @@ -26,10 +26,14 @@ import org.apache.sqoop.validation.Status; public class ClassAvailable extends AbstractValidator<String> { @Override public void validate(String klass) { - try { - Class.forName(klass); - } catch (ClassNotFoundException e) { - addMessage(new Message(Status.ERROR, "Class not found")); + if (klass == null) { + addMessage(new Message(Status.ERROR, "Class cannot be null")); + } else { + try { + Class.forName(klass); + } catch (ClassNotFoundException e) { + addMessage(new Message(Status.ERROR, "Class not found")); + } } } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/5d0862f8/common/src/test/java/org/apache/sqoop/validation/validators/TestClassAvailable.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/validation/validators/TestClassAvailable.java b/common/src/test/java/org/apache/sqoop/validation/validators/TestClassAvailable.java index c08cf0a..cdfa2a9 100644 --- a/common/src/test/java/org/apache/sqoop/validation/validators/TestClassAvailable.java +++ b/common/src/test/java/org/apache/sqoop/validation/validators/TestClassAvailable.java @@ -44,5 +44,10 @@ public class TestClassAvailable { assertEquals(1, validator.getMessages().size()); messages = validator.getMessages(); assertEquals(Status.ERROR, messages.get(0).getStatus()); + + validator.validate(null); + assertEquals(2, validator.getMessages().size()); + messages = validator.getMessages(); + assertEquals(Status.ERROR, messages.get(1).getStatus()); } }
