Closed
Description
Before 2.20, missing value for @JacksonInject
is indicated by one of:
InvalidDefinitionException
if no injectable values configuredIllegalArgumentException
if no matching value is found form configured ones
With fix for #3072 things are being improved (see #5131) but exception types remain as above.
Neither is right:
IllegalArgumentException
is highly unexpected, not being aJacksonException
(ofJsonMappingException
subtype) ( Part of databind#3072: Make @JacksonInject not fail when there's no corresponding value #5131 will change this)InvalidDefinitionException
is incorrect since it is not (necessarily) a bad class definition but more likely mismatch between values
So to correctly indicate actual reason, let's create something like MissingInjectValueException
to indicate exact nature of failure.