@Override public JsonDeserializer<?> modifyEnumDeserializer(DeserializationConfig config, JavaType type, BeanDescription beanDesc, JsonDeserializer<?> deserializer) { JsonDeserializer<?> delegatee = deserializer.getDelegatee(); if (delegatee != null) { JsonDeserializer<?> replacementDelegatee = modifyEnumDeserializer(config, type, beanDesc, delegatee); return deserializer.replaceDelegatee(replacementDelegatee); } else if (modifyEnum && deserializer.getClass().equals(EnumDeserializer.class)) { EnumResolver enumResolver = EnumResolver.constructUnsafe(type.getRawClass(), config.getAnnotationIntrospector()); return new CaseIgnoringEnumDeserializer(enumResolver); } else { return deserializer; } }