alibaba / alibaba/fastjson2

[BUG]java.lang.ArrayIndexOutOfBoundsException: 176816

Open
#847 3 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
4.4k
Forks
613
Avg merge
1d 22h
Merged PRs (30d)
6

Description

### 问题描述
*简要描述您碰到的问题。*
Map waveDataMap = JSONB.parseObject(data, Map.class);转换时报错,数组越界。

### 环境信息
*请填写以下信息:*

- OS信息: [e.g.:CentOS 8.4.2105 4Core 3.10GHz 16 GB]
- JDK信息: [e.g.:Openjdk 1.8.0_312]
- 版本信息:[e.g.:Fastjson2 2.x.x]

### 重现步骤
*如何操作可以重现该问题:*
从数据库获取表一条数据,用MAP waveDataMap接受后,通过 byte[] bytes = JSONB.toBytes(waveDataMap);转成byte[],通过socket传送到server端,server端将该byte[]数组反序列化,
Map waveDataMap = JSONB.parseObject(data, Map.class); 发送错误,如果表字段很少可以成功,多了就报错数组越界,SQL语句见附件。
[external_master0301.zip](https://github.com/alibaba/fastjson2/files/9794554/external_master0301.zip)

1. 使用 `xxx.xxx` 方法
2. 输入 `...` 数据
3. 出现 `...` 错误
```java
//可在此输入示例代码
```

### 期待的正确结果
*对您期望发生的结果进行清晰简洁的描述。*

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

#### 附加信息
*如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。*
![1665923983367](https://user-images.githubusercontent.com/88873311/196036192-09feef50-d182-4c4c-ba3d-84db568ad2a5.jpg)

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the JSONB.toBytes and JSONB.parseObject flow described in the issue, using the attached SQL data if available. Compare a map with few fields against the larger database row and capture the complete exception context; done means the server can deserialize the larger payload without ArrayIndexOutOfBoundsException.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.