java.lang.StringIndexOutOfBoundsException: offset 65535, count 3, length 65536
at java.base/java.lang.String.checkBoundsOffCount(String.java:4593)
at java.base/java.lang.String.getChars(String.java:1681)
at com.alibaba.fastjson2.support.csv.CSVWriterUTF16.writeString(CSVWriterUTF16.java:142)
at test.FastjsonTest.test(FastjsonTest.java:56)
之前是在 #2848 的评论中补充,不过该 ISSUE 已经被关闭,也无法重新开启,所以在此再次反馈,以免被忽略。
还有几个方法存在类似的 bug,此处不再赘述,可以直接参考 #2848 的补充评论。
https://github.com/alibaba/fastjson2/blob/a122b8d58133c429f85a954546d12df2eb233265/core/src/main/java/com/alibaba/fastjson2/support/csv/CSVWriterUTF16.java#L141-L149
定位了下,如上所示,是
CSVWriterUTF16
的 142 行代码处没有 预先检测数组容量 所致。错误堆栈信息如下:
发现这些 bug 有些随机,必须要恰好构造出符合特定条件的数据才能出现。
Originally posted by @CodePlayer in https://github.com/alibaba/fastjson2/issues/2848#issuecomment-2358258198