-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
I'm using jackson databind 2.9.9.3.
I'm trying to deserialize object with creator. I've set
objectMapper.setDefaultSetterInfo(JsonSetter.Value.construct(Nulls.AS_EMPTY, Nulls.AS_EMPTY))
But jackson tries to put null instead of empty set in my constructor.
I debugged jackson and found, that jackson calls BasicDeserializerFactory#constructCreatorProperty to get constructor argument property(class CreatorProperty).
This class holds ProperyMetadata, which is used later to handle Nulls value.
PropertyMetadata constructed using PropertyMetadata.construct method (line 1066 in source code in IDE or https://github.com/FasterXML/jackson-databind/blob/master/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java#L930 in current)
This call does not fill _valueNulls and _contentNulls. Looks like JsonSetter annotation and defaults are completely ignored for constructor arguments.
Is this intended? How can i prevent jackson from putting nulls in my contructor?