Evitando NullPointerException quando CPF é nulo
diff --git a/stella-faces/src/main/java/br/com/caelum/stella/faces/validation/StellaCPFValidator.java b/stella-faces/src/main/java/br/com/caelum/stella/faces/validation/StellaCPFValidator.java
index 68e4aa8..44518d6 100644
--- a/stella-faces/src/main/java/br/com/caelum/stella/faces/validation/StellaCPFValidator.java
+++ b/stella-faces/src/main/java/br/com/caelum/stella/faces/validation/StellaCPFValidator.java
@@ -57,6 +57,8 @@
}
public void validate(FacesContext facesContext, UIComponent uiComponent, Object value) throws ValidatorException {
+ if (value == null) return;
+
ResourceBundle bundle = resourceBundleFinder.getForCurrentLocale(facesContext);
ResourceBundleMessageProducer producer = new ResourceBundleMessageProducer(bundle);
CPFValidator validator = new CPFValidator(producer, formatted);
diff --git a/stella-faces/src/test/java/br/com/caelum/stella/faces/validation/StellaCPFValidatorTest.java b/stella-faces/src/test/java/br/com/caelum/stella/faces/validation/StellaCPFValidatorTest.java
index 98e61e9..6e315dd 100644
--- a/stella-faces/src/test/java/br/com/caelum/stella/faces/validation/StellaCPFValidatorTest.java
+++ b/stella-faces/src/test/java/br/com/caelum/stella/faces/validation/StellaCPFValidatorTest.java
@@ -89,4 +89,20 @@
fail("shouldn't throw exception for valid cpf with leading zeros");
}
}
+
+ @Test
+ public void shouldNotThrowNullPointerExceptionWhenCPFIsNull() {
+ final FacesContext context = mockery.mock(FacesContext.class);
+ final UIComponent component = mockery.mock(UIComponent.class);
+ facesContextMocker.mockMessageBundle(context, "messages", Locale.getDefault());
+
+ try {
+ validator.validate(context, component, null);
+ mockery.assertIsSatisfied();
+ } catch (ValidatorException e) {
+ fail("shouldn't throw exception for null cpf");
+ } catch (NullPointerException e) {
+ fail("shouldn't throw exception for null cpf");
+ }
+ }
}