fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG]2.0.54版本,使用parseObject(String text, Class<T> clazz)方法导致OOM

Open chenguolei opened this issue 1 month ago • 6 comments

问题描述

parseObject生成大量值为null的对象,导致内存突然之间飚高,最终OOM

环境信息

请填写以下信息:

  • OS信息: [e.g.:CentOS 8.4.2105 4Core 3.10GHz 16 GB]
  • JDK信息: [e.g.:Openjdk 21.xxx]
  • 版本信息:[e.g.:Fastjson2 2.0.54]

重现步骤

如何操作可以重现该问题: 执行如下代码可以复现

@Getter
@Setter
public class User {
    private List<School> schools;

    public static void main(String[] args) throws JsonProcessingException {
        User entity = JSON.parseObject("{\"schools\":[{nu}]}", User.class, JSONReader.Feature.IgnoreNullPropertyValue);
        System.out.println(entity);
    }

    @Getter
    @Setter
    static class School {
        private String name;
    }
}

期待的正确结果

不OOM

相关日志输出

请复制并粘贴任何相关的日志输出。

附加信息

chenguolei avatar Nov 18 '25 13:11 chenguolei

JSON 字符串有语法问题啊

jujn avatar Nov 19 '25 09:11 jujn

JSON 字符串有语法问题啊

你试下这个,不会报不合法的异常

chenguolei avatar Nov 19 '25 09:11 chenguolei

欧克确实,我去修一下

jujn avatar Nov 19 '25 09:11 jujn

欧克确实,我去修一下 有规避方法嘛

chenguolei avatar Nov 20 '25 03:11 chenguolei

可以暂时在程序启动时使用:-Dfastjson2.creator=reflect,会抛出 JSONValidException

jujn avatar Nov 20 '25 04:11 jujn

可以暂时在程序启动时使用:-Dfastjson2.creator=reflect,会抛出 JSONValidException

好的 多谢,我试试

chenguolei avatar Nov 20 '25 06:11 chenguolei