From 5bbe7088e87e02bd8ac3e16f48f5e3e16080fe88 Mon Sep 17 00:00:00 2001 From: Pavel Date: Wed, 28 Sep 2016 02:51:02 +0300 Subject: [PATCH] Fix #929, #1272 --- .../databind/deser/std/FactoryBasedEnumDeserializer.java | 4 +--- .../jackson/databind/creators/EnumCreatorTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/FactoryBasedEnumDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/FactoryBasedEnumDeserializer.java index 12cbc7482b..cf4096b66d 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/FactoryBasedEnumDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/FactoryBasedEnumDeserializer.java @@ -158,9 +158,7 @@ protected Object deserializeEnumUsingPropertyBased(final JsonParser p, final Des SettableBeanProperty creatorProp = creator.findCreatorProperty(propName); if (creatorProp != null) { - if (buffer.assignParameter(creatorProp, _deserializeWithErrorWrapping(p, ctxt, creatorProp))) { - p.nextToken(); // to move to next field name - } + buffer.assignParameter(creatorProp, _deserializeWithErrorWrapping(p, ctxt, creatorProp)); continue; } if (buffer.readIdProperty(propName)) { diff --git a/src/test/java/com/fasterxml/jackson/databind/creators/EnumCreatorTest.java b/src/test/java/com/fasterxml/jackson/databind/creators/EnumCreatorTest.java index 5ae4d351a9..80593cac6f 100644 --- a/src/test/java/com/fasterxml/jackson/databind/creators/EnumCreatorTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/creators/EnumCreatorTest.java @@ -275,6 +275,12 @@ public void testMultiArgEnumCreator() throws Exception { Enum929 v = MAPPER.readValue("{\"id\":3,\"name\":\"B\"}", Enum929.class); assertEquals(Enum929.B, v); + EnumSet valueEnumSet = MAPPER.readValue("[{\"id\":3,\"name\":\"B\"}, {\"id\":3,\"name\":\"A\"}]", + new TypeReference>() {}); + assertTrue(valueEnumSet.contains(v)); + List valueList = MAPPER.readValue("[{\"id\":3,\"name\":\"B\"}, {\"id\":3,\"name\":\"A\"}, {\"id\":3,\"name\":\"B\"}]", + new TypeReference>() {}); + assertTrue(valueList.contains(v)); } // for [databind#960]