Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

kotlin在多线程下反序列化会报错 #1488

@sd4324530

Description

@sd4324530

kotlin 1.1.4-3
jdk 1.8-112
fastjson 1.2.38
场景是开多线程,反序列化同一个data class,使用的方法是JSON.parseObject(String, Class)
线程数在1-3的时候正常,从4个线程开始,出现报错:
com.alibaba.fastjson.JSONException: default constructor not found. class com.haiziwang.platform.krediskt.common.pojo.info.Server
at com.alibaba.fastjson.util.JavaBeanInfo.build(JavaBeanInfo.java:409)
at com.alibaba.fastjson.util.JavaBeanInfo.build(JavaBeanInfo.java:175)
at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:602)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:519)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:341)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:623)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:348)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:252)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:471)

跟了下代码,发现应该是TypeUtils.getKoltinConstructorParameters(Class)这个方法的问题
刚进入这个方法,TypeUtils类中kotlin_kclass_constructor属性就不为空,但是kotlin_kclass_getConstructors为空,导致在TypeUtils.java的2091行报错空指针,导致这个方法返回null,然后出现上述问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions