alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
4.96k stars 1.03k forks source link

反序列化异常 #860

Open zhangshuhua opened 4 months ago

zhangshuhua commented 4 months ago

最新系统升级了jdk17,升级前一切正常,升级后会报错: Caused by: com.alibaba.fastjson.JSONException: autoType is not support. [Ljava.lang.Object; at com.alibaba.fastjson.parser.ParserConfig.checkAutoType(ParserConfig.java:1369) ~[fastjson-1.2.83.jar!/:na] at com.alibaba.fastjson.parser.ParserConfig.checkAutoType(ParserConfig.java:1304) ~[fastjson-1.2.83.jar!/:na] at com.alibaba.fastjson.JSONObject.readObject(JSONObject.java:540) ~[fastjson-1.2.83.jar!/:na] at jdk.internal.reflect.GeneratedMethodAccessor200.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1231) ~[na:na] at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2434) ~[na:na] at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) ~[na:na] at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) ~[na:na] at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2617) ~[na:na] at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468) ~[na:na] at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) ~[na:na] at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) ~[na:na] at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2617) ~[na:na] at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468) ~[na:na] at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) ~[na:na] at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) ~[na:na] at java.base/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2617) ~[na:na] at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468) ~[na:na] at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268) ~[na:na] at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744) ~[na:na] at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514) ~[na:na] at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472) ~[na:na] at com.alicp.jetcache.support.JavaValueDecoder.doApply(JavaValueDecoder.java:29) ~[jetcache-core-2.7.0.M1.jar!/:na] at com.alicp.jetcache.support.AbstractValueDecoder.apply(AbstractValueDecoder.java:41) ~[jetcache-core-2.7.0.M1.jar!/:na]

这里有个疑问,序列化不是使用的java吗,为什么是用到fastjson?

areyouok commented 4 months ago

从stack看 ,我认为和java17没关系。

是你要反序列化的类有问题,这个类定制了java的反序列化readObject,然后自己调用了fastjson