-
Notifications
You must be signed in to change notification settings - Fork 541
Open
Labels
bugSomething isn't workingSomething isn't working
Milestone
Description
问题描述
如下代码所示,Dubbo 使用 Fastjson 2.0.57 版本时提示报错:not support none-Serializable。
使用 Fastjson 2.0.56 及之前版本则一切正常。
环境信息
请填写以下信息:
- OS信息: Windows 10
- JDK信息:OpenJDK 17.0.14
- 版本信息:Fastjson 2.0.57
重现步骤
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
static class Message<T> implements Serializable {
T msg;
}
@Test
public void test() {
Message<String> obj = new Message<>("Hello");
byte[] bytes = JSONB.toBytes(obj, JSONWriter.Feature.WriteClassName,
JSONWriter.Feature.FieldBased,
JSONWriter.Feature.ErrorOnNoneSerializable,
JSONWriter.Feature.ReferenceDetection,
JSONWriter.Feature.WriteNulls,
JSONWriter.Feature.NotWriteDefaultValue,
JSONWriter.Feature.NotWriteHashMapArrayListClassName,
JSONWriter.Feature.WriteNameAsSymbol);
ContextAutoTypeBeforeHandler handler = new ContextAutoTypeBeforeHandler(true, obj.getClass());
Object result = JSONB.parseObject(bytes, obj.getClass(), handler,
JSONReader.Feature.UseDefaultConstructorAsPossible,
JSONReader.Feature.ErrorOnNoneSerializable,
JSONReader.Feature.IgnoreAutoTypeNotMatch,
JSONReader.Feature.UseNativeObject,
JSONReader.Feature.FieldBased);
}
期待的正确结果
一切正常
相关日志输出
com.alibaba.fastjson2.JSONException: not support none-Serializable
at com.alibaba.fastjson2.reader.FieldReaderObject.readFieldValueJSONB(FieldReaderObject.java:185)
at com.alibaba.fastjson2.reader.ObjectReaderAdapter.readFieldValue(ObjectReaderAdapter.java:506)
at com.alibaba.fastjson2.reader.ORG_1_1_Message.readJSONBObject(Unknown Source)
at com.alibaba.fastjson2.JSONB.parseObject(JSONB.java:569)
附加信息
如果将泛型 <T>
声明改为 <T extends Serializable>
,就能够恢复正常。
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working