Skip to content

Commit 50aadf7

Browse files
committed
fix ErrorOnNoneSerializable, for issue #3499
1 parent 13204df commit 50aadf7

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public FieldReader(
7373
this.fieldClassSerializable = fieldClass != null
7474
&& (Serializable.class.isAssignableFrom(fieldClass)
7575
|| Modifier.isInterface(fieldClass.getModifiers())
76-
|| BeanUtils.isRecord(fieldClass));
76+
|| BeanUtils.isRecord(fieldClass) || fieldClass.isPrimitive());
7777
this.features = features;
7878
this.fieldNameHash = Fnv.hashCode64(fieldName);
7979
this.fieldNameHashLCase = Fnv.hashCode64LCase(fieldName);

core/src/test/java/com/alibaba/fastjson2/issues_3400/Issue3499.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,45 @@ static class Message<T>
4141
implements Serializable {
4242
T msg;
4343
}
44+
45+
@Setter
46+
@Getter
47+
public static class ParentTestOrder
48+
implements Serializable {
49+
private static final long serialVersionUID = 721230004160956721L;
50+
private boolean flag;
51+
}
52+
53+
@Setter
54+
@Getter
55+
public static class TestOrder extends ParentTestOrder {
56+
private String name;
57+
}
58+
59+
@Test
60+
public void test1() {
61+
TestOrder order = new TestOrder();
62+
order.setName("test");
63+
order.setFlag(true);
64+
65+
byte[] bytes1 = JSONB.toBytes(
66+
order,
67+
JSONWriter.Feature.WriteClassName,
68+
JSONWriter.Feature.FieldBased,
69+
JSONWriter.Feature.ErrorOnNoneSerializable,
70+
JSONWriter.Feature.ReferenceDetection,
71+
JSONWriter.Feature.WriteNulls,
72+
JSONWriter.Feature.NotWriteDefaultValue,
73+
JSONWriter.Feature.NotWriteHashMapArrayListClassName,
74+
JSONWriter.Feature.WriteNameAsSymbol);
75+
76+
JSONB.parseObject(
77+
bytes1,
78+
TestOrder.class,
79+
JSONReader.Feature.UseDefaultConstructorAsPossible,
80+
JSONReader.Feature.ErrorOnNoneSerializable,
81+
JSONReader.Feature.IgnoreAutoTypeNotMatch,
82+
JSONReader.Feature.UseNativeObject,
83+
JSONReader.Feature.FieldBased);
84+
}
4485
}

0 commit comments

Comments
 (0)