diff --git a/core/java/android/provider/SettingsValidators.java b/core/java/android/provider/SettingsValidators.java index 5885b6b50abde..c878bba4edfe6 100644 --- a/core/java/android/provider/SettingsValidators.java +++ b/core/java/android/provider/SettingsValidators.java @@ -79,7 +79,7 @@ public class SettingsValidators { public static final Validator COMPONENT_NAME_VALIDATOR = new Validator() { @Override public boolean validate(String value) { - return ComponentName.unflattenFromString(value) != null; + return value != null && ComponentName.unflattenFromString(value) != null; } }; diff --git a/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java b/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java index e7507667b17f5..c4d5b0c0358da 100644 --- a/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java +++ b/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java @@ -16,9 +16,9 @@ package android.provider; -import static org.junit.Assert.fail; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import android.platform.test.annotations.Presubmit; import android.provider.SettingsValidators.Validator; @@ -62,6 +62,11 @@ public class SettingsValidatorsTest { assertFalse(SettingsValidators.COMPONENT_NAME_VALIDATOR.validate("rectangle")); } + @Test + public void testComponentNameValidator_onNullValue_doesNotThrow() { + assertFalse(SettingsValidators.COMPONENT_NAME_VALIDATOR.validate(null)); + } + @Test public void testLocaleValidator() { assertTrue(SettingsValidators.LOCALE_VALIDATOR.validate("en_US"));