Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]非常罕见的序列化或反序列化时丢失字段的问题 #900

Closed
zqr95518 opened this issue Nov 4, 2022 · 7 comments
Closed
Labels
bug Something isn't working fixed
Milestone

Comments

@zqr95518
Copy link

zqr95518 commented Nov 4, 2022

问题描述

简要描述您碰到的问题。
非常罕见的情况下序列化或反序列化时会丢失字段

环境信息

请填写以下信息:

  • OS信息: [e.g.:CentOS 8.4.2105 4Core 3.10GHz 16 GB]
  • JDK信息: jdk1.8.0_181
  • 版本信息:fastjson2:2.0.17
  • lombok:1.18.24

重现步骤

如何操作可以重现该问题:

  1. 执行下面的语句
  2. 输出结果没有type字段
        String data = "{\n" +
                "    \"success\": true,\n" +
                "    \"errorCode\": \"\",\n" +
                "    \"message\": \"\",\n" +
                "    \"data\": {\n" +
                "        \"id\": \"20221020144047985V4EMPSB512\",\n" +
                "        \"type\": \"3\",\n" +
                "        \"status\": \"0\"\n" +
                "    }\n" +
                "}";
        System.out.println(JSON.toJSONString(JSON.parseObject(data).getObject("data", Entity.class)));
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class Entity {
    private String id;
    private String memberId;
    private BigDecimal amount = BigDecimal.ZERO;
    private BigDecimal freeChg = BigDecimal.ZERO;
    private Date createDate;
    private String rechargeType;
    private String payFrom = "1";
    private String accNumber;
    private String type;
    private String status = "0";
    private String bankOrderNo;
    private String discountConfigId;
}

期待的正确结果

输出结果包含type字段

相关日志输出

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

附加信息

复现的时候请不要修改entity里面的任何内容。比较诡异的情况是修改了entity里面的任何字段都不会导致type消失,暂时只发现有这一个对象会导致这个问题,不知道有没有人能复现这个。

@zqr95518 zqr95518 added the bug Something isn't working label Nov 4, 2022
@zqr95518
Copy link
Author

zqr95518 commented Nov 4, 2022

多次测试发现,entity里面的字段数量似乎才是触发bug的关键,字段类型,名称似乎都没有影响

@zqr95518 zqr95518 changed the title [BUG]非常罕见的反序列化时丢失字段的问题 [BUG]非常罕见的序列化或反序列化时丢失字段的问题 Nov 4, 2022
@wenshao
Copy link
Member

wenshao commented Nov 4, 2022

这个issue #893

https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.18-SNAPSHOT/
问题已修复,请帮忙用2.0.18-SNAPSHOT版本验证,2.0.18版本预计在这个周末发布

@wenshao wenshao added this to the 2.0.18 milestone Nov 4, 2022
@zqr95518 zqr95518 closed this as completed Nov 4, 2022
@wenshao
Copy link
Member

wenshao commented Nov 6, 2022

https://github.com/alibaba/fastjson2/releases/tag/2.0.18
问题已修复,请用新版本

@zqr95518
Copy link
Author

zqr95518 commented Nov 6, 2022

https://github.com/alibaba/fastjson2/releases/tag/2.0.18 问题已修复,请用新版本

升级到2.0.18依然能重现这个bug诶

@wenshao wenshao modified the milestones: 2.0.18, 2.0.19 Nov 6, 2022
@wenshao wenshao reopened this Nov 6, 2022
@wenshao
Copy link
Member

wenshao commented Nov 6, 2022

https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.19-SNAPSHOT/
问题已修复,请帮忙用2.0.19-SNAPSHOT验证,2.0.19版本预计在11月13日前发布。

@zqr95518
Copy link
Author

zqr95518 commented Nov 6, 2022

2.0.19-SNAPSHOT没发现这个问题了

@wenshao wenshao added the fixed label Nov 6, 2022
@wenshao
Copy link
Member

wenshao commented Nov 12, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working fixed
Projects
None yet
Development

No branches or pull requests

2 participants