Skip to content

Commit c4c6d39

Browse files
committed
fix issue #3828
1 parent feca4f2 commit c4c6d39

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

core/src/main/java/com/alibaba/fastjson2/reader/ObjectReaderImplListStr.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,13 @@ public Object readJSONBObject(JSONReader jsonReader, Type fieldType, Object fiel
146146
case "kotlin.collections.EmptySet":
147147
list = getKotlinEmptySet(instanceType);
148148
break;
149+
case "java.util.Collections$EmptySet":
150+
list = Collections.emptySet();
151+
break;
152+
case "java.util.Collections$EmptyList": {
153+
list = Collections.emptyList();
154+
break;
155+
}
149156
default:
150157
try {
151158
list = (Collection) instanceType.newInstance();
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.alibaba.fastjson2.issues_3800;
2+
3+
import com.alibaba.fastjson2.JSONB;
4+
import com.alibaba.fastjson2.JSONReader;
5+
import com.alibaba.fastjson2.JSONWriter;
6+
import org.junit.jupiter.api.Test;
7+
8+
import java.util.Collection;
9+
import java.util.Collections;
10+
11+
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
13+
public class Issue3828 {
14+
@Test
15+
public void test() {
16+
Data data = new Data();
17+
data.list = Collections.emptyList();
18+
19+
byte[] bytes = JSONB.toBytes(data, JSONWriter.Feature.WriteClassName, JSONWriter.Feature.FieldBased);
20+
21+
System.out.println(JSONB.toJSONString(bytes));
22+
Data data1 = JSONB.parseObject(bytes, Data.class, JSONReader.Feature.FieldBased);
23+
assertEquals(0, data1.list.size());
24+
}
25+
26+
public static class Data {
27+
private Collection<String> list;
28+
}
29+
}

0 commit comments

Comments
 (0)