diff --git a/src/test/java/com/fasterxml/jackson/failing/ExceptionWithAnySetter4316Test.java b/src/test/java/com/fasterxml/jackson/failing/ExceptionWithAnySetter4316Test.java new file mode 100644 index 0000000000..a65b004123 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/failing/ExceptionWithAnySetter4316Test.java @@ -0,0 +1,31 @@ +package com.fasterxml.jackson.failing; + +import java.util.*; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.*; + +public class ExceptionWithAnySetter4316Test extends BaseMapTest +{ + static class Problem extends Exception { + private static final long serialVersionUID = 1L; + + @JsonAnySetter + @JsonAnyGetter + Map additionalProperties = new HashMap<>(); + } + + private final ObjectMapper MAPPER = newJsonMapper(); + + // [databind#4316] + public void testWithAnySetter() throws Exception + { + Problem problem = new Problem(); + problem.additionalProperties.put("key", "value"); + String json = MAPPER.writeValueAsString(problem); + Problem result = MAPPER.readValue(json, Problem.class); + assertEquals(Collections.singletonMap("key", "value"), + result.additionalProperties); + } +}