title: Missing fields are getting deserializing as null instead of an empty object after upgrading Jackson-databind
body: <p>I am facing one issue after upgrading Jackson library to 2x version, when fields are missing from input during deserialization, they are getting deserialised to null instead of empty.</p>
  <p>Example -</p>
  <p>POJO</p>
  <pre><code>@Value
  @Builder(builderClassName = &quot;ClassABuilder&quot;)
  @AllArgsConstructor
  public class ClassA {
    private String value1;
    private Map&lt;String, String&gt; value2;
  
    private ClassA() {
      value1 = &quot;someString&quot;;
      value2 = ImmutableList.of();
    }
  }
  </code></pre>
  <p>Deserialization -</p>
  <pre><code>private final IonObjectMapper ionValueMapper;
  ionValueMapper.readValue(value, ClassA.class);
  </code></pre>
  <p>ObjectMapper -</p>
  <pre><code>IonObjectMapper joiObjectMapper = (IonObjectMapper) new IonObjectMapper()
                  .setSerializationInclusion(JsonInclude.Include.ALWAYS)
                  .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
                  .enable(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS)
                  .enableDefaultTyping(ObjectMapper.DefaultTyping.JAVA_LANG_OBJECT, JsonTypeInfo.As.PROPERTY)
                  .enable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY)
                  .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
                  .enable(MapperFeature.AUTO_DETECT_SETTERS)
                  .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY)
                  .setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE)
                  .setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.NONE)
                  .setVisibility(PropertyAccessor.CREATOR, JsonAutoDetect.Visibility.NONE)
                  .setVisibility(PropertyAccessor.IS_GETTER, JsonAutoDetect.Visibility.NONE);
  </code></pre>
  <p>Input -</p>
  <pre><code>{&quot;value1&quot; = &quot;someString&quot;}
  </code></pre>
  <p>Desired Output -</p>
  <pre><code>{&quot;value1&quot; = &quot;someString&quot;, &quot;value2&quot; = {}}
  </code></pre>
  <p>Current Output -</p>
  <pre><code>{&quot;value1&quot; = &quot;someString&quot;, &quot;value2&quot; = null}
  </code></pre>
  <p>Is there a way we can configure in the ObjectMapper that missing fields should not be converted to null but empty? I cannot change ClassA.</p>
  <p>Jackson packages versions that I am using -</p>
  <pre><code>Jackson-core = 2.10.x;
  Jackson-databind = 2.10.x;
  Jackson-dataformat-xml = 2.10.x;
  Jackson-module-jaxb-annotations = 2.10.x;
  Jackson-dataformat-ion = 2.10.x;
  Jackson-annotations = 2.10.x;
  </code></pre>
  <p>I tried the suggestion in this question but does not work for my case - <a href="https://stackoverflow.com/questions/32398885/jackson-deserializer-change-null-collection-to-empty-one/51442640#51442640">link</a></p>