Make Validate.isAssignableFrom() check null inputs.
This commit is contained in:
parent
75a6aac07e
commit
9bf6b2fb41
|
@ -75,6 +75,7 @@ The <action> type attribute can be add,update,fix,remove.
|
||||||
<action issue="LANG-1679" type="fix" dev="ggregory" due-to="clover">Improve performance of StringUtils.unwrap(String, String) #844.</action>
|
<action issue="LANG-1679" type="fix" dev="ggregory" due-to="clover">Improve performance of StringUtils.unwrap(String, String) #844.</action>
|
||||||
<action issue="LANG-1675" type="fix" dev="ggregory" due-to="clover">Improve performance of StringUtils.join for primitives #812.</action>
|
<action issue="LANG-1675" type="fix" dev="ggregory" due-to="clover">Improve performance of StringUtils.join for primitives #812.</action>
|
||||||
<action issue="LANG-1675" type="fix" dev="ggregory" due-to="Arturo Bernal">Fixed NPE getting Stack Trace if Throwable is null #733.</action>
|
<action issue="LANG-1675" type="fix" dev="ggregory" due-to="Arturo Bernal">Fixed NPE getting Stack Trace if Throwable is null #733.</action>
|
||||||
|
<action type="fix" dev="ggregory" due-to="Gary Gregory, Arturo Bernal">Make Validate.isAssignableFrom() check null inputs.</action>
|
||||||
<!-- ADD -->
|
<!-- ADD -->
|
||||||
<action type="add" dev="ggregory" due-to="Gary Gregory">Add EnumUtils.getEnumSystemProperty(...).</action>
|
<action type="add" dev="ggregory" due-to="Gary Gregory">Add EnumUtils.getEnumSystemProperty(...).</action>
|
||||||
<action type="add" dev="ggregory" due-to="Gary Gregory">Add TriConsumer.</action>
|
<action type="add" dev="ggregory" due-to="Gary Gregory">Add TriConsumer.</action>
|
||||||
|
|
|
@ -1278,9 +1278,6 @@ public class Validate {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// isAssignableFrom
|
|
||||||
//---------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validates that the argument can be converted to the specified class, if not, throws an exception.
|
* Validates that the argument can be converted to the specified class, if not, throws an exception.
|
||||||
*
|
*
|
||||||
|
@ -1299,9 +1296,9 @@ public class Validate {
|
||||||
*/
|
*/
|
||||||
public static void isAssignableFrom(final Class<?> superType, final Class<?> type) {
|
public static void isAssignableFrom(final Class<?> superType, final Class<?> type) {
|
||||||
// TODO when breaking BC, consider returning type
|
// TODO when breaking BC, consider returning type
|
||||||
if (!superType.isAssignableFrom(type)) {
|
if (type == null || superType == null || !superType.isAssignableFrom(type)) {
|
||||||
throw new IllegalArgumentException(String.format(DEFAULT_IS_ASSIGNABLE_EX_MESSAGE, type == null ? "null" : type.getName(),
|
throw new IllegalArgumentException(
|
||||||
superType.getName()));
|
String.format(DEFAULT_IS_ASSIGNABLE_EX_MESSAGE, ClassUtils.getName(type, "null type"), ClassUtils.getName(superType, "null type")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1849,7 +1849,34 @@ class ValidateTest {
|
||||||
|
|
||||||
assertEquals("Cannot assign a java.lang.String to a java.util.List", ex.getMessage());
|
assertEquals("Cannot assign a java.lang.String to a java.util.List", ex.getMessage());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@Test
|
||||||
|
void shouldThrowIllegalArgumentExceptionWithNullSuperType() {
|
||||||
|
final IllegalArgumentException ex = assertThrows(
|
||||||
|
IllegalArgumentException.class,
|
||||||
|
() -> Validate.isAssignableFrom(null, String.class));
|
||||||
|
|
||||||
|
assertEquals("Cannot assign a java.lang.String to a null type", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldThrowIllegalArgumentExceptionWithNullType() {
|
||||||
|
final IllegalArgumentException ex = assertThrows(
|
||||||
|
IllegalArgumentException.class,
|
||||||
|
() -> Validate.isAssignableFrom(List.class, null));
|
||||||
|
|
||||||
|
assertEquals("Cannot assign a null type to a java.util.List", ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldThrowIllegalArgumentExceptionWithNullTypes() {
|
||||||
|
final IllegalArgumentException ex = assertThrows(
|
||||||
|
IllegalArgumentException.class,
|
||||||
|
() -> Validate.isAssignableFrom(null, null));
|
||||||
|
|
||||||
|
assertEquals("Cannot assign a null type to a null type", ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
class WithMessage {
|
class WithMessage {
|
||||||
|
|
Loading…
Reference in New Issue