Skip to content

Commit 5f58a1b

Browse files
committed
Add more consistency checks for type id generation
1 parent fc6e3c2 commit 5f58a1b

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/main/java/com/fasterxml/jackson/databind/jsontype/impl/TypeSerializerBase.java

+14-2
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,22 @@ protected TypeSerializerBase(TypeIdResolver idRes, BeanProperty property)
3333
*/
3434

3535
protected String idFromValue(Object value) {
36-
return _idResolver.idFromValue(value);
36+
String id = _idResolver.idFromValue(value);
37+
if (id == null) {
38+
String typeDesc = (value == null) ? "NULL" : value.getClass().getName();
39+
throw new IllegalArgumentException("Can not resolve type id for "
40+
+typeDesc+" (using "+_idResolver.getClass().getName()+")");
41+
}
42+
return id;
3743
}
3844

3945
protected String idFromValueAndType(Object value, Class<?> type) {
40-
return _idResolver.idFromValueAndType(value, type);
46+
String id = _idResolver.idFromValueAndType(value, type);
47+
if (id == null) {
48+
String typeDesc = (value == null) ? "NULL" : value.getClass().getName();
49+
throw new IllegalArgumentException("Can not resolve type id for "
50+
+typeDesc+" (using "+_idResolver.getClass().getName()+")");
51+
}
52+
return id;
4153
}
4254
}

0 commit comments

Comments
 (0)