Search before asking
- [x] I searched in the issues and found nothing similar.
Describe the bug
The EnumSetDeserializer implementation has problems with calls to _nullProvider and handling of _skipNullValues that are not consistent.
This Issue was submitted based on the following comment
https://github.com/FasterXML/jackson-databind/issues/5165#issuecomment-2973787646
Version Information
2.20.0
Reproduction
No response
Expected behavior
It is suggested that the flow should be modified as follows
flowchart TD
A[Is JsonToken.VALUE_NULL?] -->|Yes| B[Is _skipNullValues true?]
B -->|Yes| C[Skip]
B -->|No| D[value = _nullProvider.getNullValue]
A -->|No| E[value = _enumDeserializer.deserialize]
E --> F{Is value null?}
F -->|Yes| D
F -->|No| M[Use value]
D --> I{Is value null?}
I -->|Yes| J[Is _skipNullValues true?]
J -->|Yes| K[skip value]
J -->|No| L[Throw error]
I -->|No| M
Additional context
No response
Comment From: JooHyukKim
Good finding @k163377 ! If needed we may also want to consider refactor and cause behavior change in 3.x and backport as needed?
Comment From: cowtowncoder
@k163377 I know there has been some work in this area (#5202) -- is this still an existing problem? I guess #5202 was for general containers, null skipping?