Skip to content

Commit 031fe2c

Browse files
committed
fix : ObjectWriterAdapter#writeWithFilter support null input, for issue alibaba#1226
1 parent 4b0578e commit 031fe2c

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

core/src/main/java/com/alibaba/fastjson2/writer/ObjectWriterAdapter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,11 @@ public boolean writeTypeInfo(JSONWriter jsonWriter) {
429429

430430
@Override
431431
public void writeWithFilter(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) {
432+
if (object == null) {
433+
jsonWriter.writeNull();
434+
return;
435+
}
436+
432437
if (jsonWriter.isWriteTypeInfo(object, fieldType, features)) {
433438
if (jsonWriter.jsonb) {
434439
writeClassInfo(jsonWriter);
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.alibaba.fastjson2.issues_1000;
2+
3+
import com.alibaba.fastjson2.JSONFactory;
4+
import com.alibaba.fastjson2.JSONWriter;
5+
import com.alibaba.fastjson2.writer.ObjectWriterAdapter;
6+
import com.alibaba.fastjson2.writer.ObjectWriterProvider;
7+
import org.junit.jupiter.api.Test;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
10+
11+
public class Issue1226 {
12+
@Test
13+
public void test() {
14+
ObjectWriterProvider provider = JSONFactory.getDefaultObjectWriterProvider();
15+
ObjectWriterAdapter writerAdapter = (ObjectWriterAdapter) provider.getObjectWriter(Bean.class);
16+
17+
JSONWriter jsonWriter = JSONWriter.of();
18+
writerAdapter.writeWithFilter(jsonWriter, null);
19+
assertEquals("null", jsonWriter.toString());
20+
}
21+
22+
static class Bean {
23+
public int id;
24+
}
25+
}

0 commit comments

Comments
 (0)