Add a failing test for #2572 in case handling could be improved.
diff --git a/src/test/java/com/fasterxml/jackson/failing/JsonSetter2572Test.java b/src/test/java/com/fasterxml/jackson/failing/JsonSetter2572Test.java
new file mode 100644
index 0000000..ac3c254
--- /dev/null
+++ b/src/test/java/com/fasterxml/jackson/failing/JsonSetter2572Test.java
@@ -0,0 +1,50 @@
+package com.fasterxml.jackson.failing;
+
+import java.util.Objects;
+
+import com.fasterxml.jackson.annotation.*;
+
+import com.fasterxml.jackson.databind.*;
+
+// Not sure if [databind#2572] is actually a bug, but behavior in 2.9 was
+// different from 2.10 in that no exception thrown and databind quietly just
+// left `null` for Beans as `null` even if "EMPTY" was indicated by configuration.
+public class JsonSetter2572Test extends BaseMapTest
+{
+ static class Outer {
+ @JsonProperty("inner")
+ final Inner inner;
+
+ @JsonCreator
+ public Outer(@JsonProperty("inner") Inner inner) {
+ this.inner = Objects.requireNonNull(inner, "inner");
+ }
+ }
+
+ static class Inner {
+ @JsonProperty("field")
+ final String field;
+
+ @JsonCreator
+ public Inner(@JsonProperty("field") String field) {
+ this.field = field;
+ }
+ }
+
+ public void testSetterWithEmpty() throws Exception {
+ /*
+ ObjectMapper mapper = newObjectMapper()
+ .setDefaultSetterInfo(JsonSetter.Value.construct(Nulls.AS_EMPTY, Nulls.AS_EMPTY));
+ */
+ ObjectMapper mapper = jsonMapperBuilder()
+ .defaultSetterInfo(JsonSetter.Value.construct(Nulls.AS_EMPTY, Nulls.AS_EMPTY))
+ .build();
+
+ String json = mapper.writeValueAsString(new Outer(new Inner("inner")));
+ Outer result = mapper.readValue(json, Outer.class);
+ assertNotNull(result);
+ assertNotNull(result.inner); // converted to "empty" bean
+
+//System.err.println("Final -> "+mapper.writeValueAsString(result));
+ }
+}