Skip to content

Commit 0f4b10b

Browse files
committed
Merge branch '2.16' into 2.17
2 parents b7d1e72 + ccabd8e commit 0f4b10b

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

release-notes/VERSION-2.x

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ Project: jackson-databind
5353
#4316: NPE when deserializing `JsonAnySetter` in `Throwable`
5454
(reported by @jpraet)
5555
(fix contributed by Joo-Hyuk K)
56+
#4355: Jackson 2.16 fails attempting to obtain `ObjectWriter` for an `Enum` of which
57+
some value returns null from `toString()`
58+
(reported by @YutaHiguchi-bsn)
5659

5760
2.16.1 (24-Dec-2023)
5861

src/main/java/com/fasterxml/jackson/databind/util/EnumValues.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ public static EnumValues constructFromToString(MapperConfig<?> config, Annotated
129129
if (name == null) {
130130
Enum<?> en = enumConstants[i];
131131
name = en.toString();
132+
// 01-Feb-2024, tatu: [databind#4355] Nulls not great but... let's
133+
// coerce into "" for backwards compatibility
134+
if (name == null) {
135+
name = "";
136+
}
132137
}
133138
if (useLowerCase) {
134139
name = name.toLowerCase();
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.fasterxml.jackson.databind.deser.enums;
2+
3+
import com.fasterxml.jackson.databind.*;
4+
5+
public class EnumWithNullToString4355Test extends BaseMapTest
6+
{
7+
// [databind#4355]
8+
enum Enum4355 {
9+
ALPHA("A"),
10+
BETA("B"),
11+
UNDEFINED(null);
12+
13+
private final String s;
14+
15+
Enum4355(String s) {
16+
this.s = s;
17+
}
18+
19+
@Override
20+
public String toString() {
21+
return s;
22+
}
23+
}
24+
25+
private final ObjectMapper MAPPER = newJsonMapper();
26+
27+
// [databind#4355]
28+
public void testWithNullToString() throws Exception
29+
{
30+
assertEquals("\"ALPHA\"", MAPPER.writeValueAsString(Enum4355.ALPHA));
31+
}
32+
}

0 commit comments

Comments
 (0)