Skip to content

Commit b96a3b5

Browse files
committed
Add enum handling wrt #994
1 parent 23d49e3 commit b96a3b5

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/std/EnumDeserializer.java

+3-10
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ private final Object _deserializeAltString(JsonParser p, DeserializationContext
165165
name = name.trim();
166166
if (name.length() == 0) {
167167
if (ctxt.isEnabled(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT)) {
168-
return null;
168+
return getEmptyValue(ctxt);
169169
}
170170
} else if (!ctxt.isEnabled(DeserializationFeature.FAIL_ON_NUMBERS_FOR_ENUMS)) {
171171
// [databind#149]: Allow use of 'String' indexes as well -- unless prohibited (as per above)
@@ -195,15 +195,8 @@ private final Object _deserializeAltString(JsonParser p, DeserializationContext
195195
protected Object _deserializeOther(JsonParser p, DeserializationContext ctxt) throws IOException
196196
{
197197
// [databind#381]
198-
if (ctxt.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)
199-
&& p.isExpectedStartArrayToken()) {
200-
p.nextToken();
201-
final Object parsed = deserialize(p, ctxt);
202-
JsonToken curr = p.nextToken();
203-
if (curr != JsonToken.END_ARRAY) {
204-
handleMissingEndArrayForSingle(p, ctxt);
205-
}
206-
return parsed;
198+
if (p.hasToken(JsonToken.START_ARRAY)) {
199+
return _deserializeFromArray(p, ctxt);
207200
}
208201
return ctxt.handleUnexpectedToken(_enumClass(), p);
209202
}

src/test/java/com/fasterxml/jackson/databind/struct/EmptyArrayAsNullTest.java

+4
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ public void testNullStringFromEmptyArray() throws Exception {
125125
_testNullWrapper(String.class);
126126
}
127127

128+
public void testNullEnumFromEmptyArray() throws Exception {
129+
_testNullWrapper(ABC.class);
130+
}
131+
128132
public void testStdJdkTypesFromEmptyArray() throws Exception
129133
{
130134
_testNullWrapper(BigInteger.class);

0 commit comments

Comments
 (0)