@@ -205,30 +205,27 @@ public void setIgnorableProperties(Set<String> ignorable) {
205
205
public void resolve (DeserializationContext ctxt ) throws JsonMappingException
206
206
{
207
207
// May need to resolve types for delegate- and/or property-based creators:
208
- if (_valueInstantiator != null ) {
209
- if (_valueInstantiator .canCreateUsingDelegate ()) {
210
- JavaType delegateType = _valueInstantiator .getDelegateType (ctxt .getConfig ());
211
- if (delegateType == null ) {
212
- ctxt .reportBadDefinition (_containerType , String .format (
208
+ if (_valueInstantiator .canCreateUsingDelegate ()) {
209
+ JavaType delegateType = _valueInstantiator .getDelegateType (ctxt .getConfig ());
210
+ if (delegateType == null ) {
211
+ ctxt .reportBadDefinition (_containerType , String .format (
213
212
"Invalid delegate-creator definition for %s: value instantiator (%s) returned true for 'canCreateUsingDelegate()', but null for 'getDelegateType()'" ,
214
- _containerType ,
215
- _valueInstantiator .getClass ().getName ()));
216
- }
217
- /* Theoretically should be able to get CreatorProperty for delegate
218
- * parameter to pass; but things get tricky because DelegateCreator
219
- * may contain injectable values. So, for now, let's pass nothing.
220
- */
221
- _delegateDeserializer = findDeserializer (ctxt , delegateType , null );
222
- } else if (_valueInstantiator .canCreateUsingArrayDelegate ()) {
223
- JavaType delegateType = _valueInstantiator .getArrayDelegateType (ctxt .getConfig ());
224
- if (delegateType == null ) {
225
- ctxt .reportBadDefinition (_containerType , String .format (
213
+ _containerType ,
214
+ _valueInstantiator .getClass ().getName ()));
215
+ }
216
+ // Theoretically should be able to get CreatorProperty for delegate
217
+ // parameter to pass; but things get tricky because DelegateCreator
218
+ // may contain injectable values. So, for now, let's pass nothing.
219
+ _delegateDeserializer = findDeserializer (ctxt , delegateType , null );
220
+ } else if (_valueInstantiator .canCreateUsingArrayDelegate ()) {
221
+ JavaType delegateType = _valueInstantiator .getArrayDelegateType (ctxt .getConfig ());
222
+ if (delegateType == null ) {
223
+ ctxt .reportBadDefinition (_containerType , String .format (
226
224
"Invalid delegate-creator definition for %s: value instantiator (%s) returned true for 'canCreateUsingArrayDelegate()', but null for 'getArrayDelegateType()'" ,
227
- _containerType ,
228
- _valueInstantiator .getClass ().getName ()));
229
- }
230
- _delegateDeserializer = findDeserializer (ctxt , delegateType , null );
225
+ _containerType ,
226
+ _valueInstantiator .getClass ().getName ()));
231
227
}
228
+ _delegateDeserializer = findDeserializer (ctxt , delegateType , null );
232
229
}
233
230
if (_valueInstantiator .canCreateFromObjectWith ()) {
234
231
SettableBeanProperty [] creatorProps = _valueInstantiator .getFromObjectArguments (ctxt .getConfig ());
@@ -272,7 +269,7 @@ public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
272
269
}
273
270
Set <String > ignored = _ignorableProperties ;
274
271
AnnotationIntrospector intr = ctxt .getAnnotationIntrospector ();
275
- if (intr != null && property != null ) {
272
+ if (_neitherNull ( intr , property ) ) {
276
273
AnnotatedMember member = property .getMember ();
277
274
if (member != null ) {
278
275
JsonIgnoreProperties .Value ignorals = intr .findPropertyIgnorals (member );
@@ -328,9 +325,8 @@ public ValueInstantiator getValueInstantiator() {
328
325
*/
329
326
@ Override
330
327
public boolean isCachable () {
331
- /* As per [databind#735], existence of value or key deserializer (only passed
332
- * if annotated to use non-standard one) should also prevent caching.
333
- */
328
+ // As per [databind#735], existence of value or key deserializer (only passed
329
+ // if annotated to use non-standard one) should also prevent caching.
334
330
return (_valueDeserializer == null )
335
331
&& (_keyDeserializer == null )
336
332
&& (_valueTypeDeserializer == null )
0 commit comments