`private static final ThreadSafeFury fury = Fury.builder()
.withRefTracking(true)
.requireClassRegistration(false)
.withDeserializeNonexistentClass(true)
.withCompatibleMode(CompatibleMode.COMPATIBLE)
.deserializeNonexistentEnumValueAsNull(true)
.withScopedMetaShare(true)
.buildThreadSafeFuryPool(64, 128);`
`public static Object zeroCopyDeserialize(byte[] byteBuffer) {
return fury.deserialize(byteBuffer);
}`
`public static void main(String[] args) throws Exception {
String demo = "AiYAAAAAAf8AAAAAAADwP//No2XczdnvP/8AAAAAAAD4//8B/wABUA1KswMLDXtaCn2wmiLJpbx6GiTwTEfTATii+pCdEmpEjVAiaGiT1gwAPTbFo4mADFgRyIlYgRyIYNQBplk7ITokGtS9AldkJ0SAGtRF1Jk7ITokGrQcEuuiMkQTdMhOiQAU";
byte[] decode = Base64.getDecoder().decode(demo);
Object o = FuryUtils.zeroCopyDeserialize(decode);
JSONObject.toJSONString(Double.NaN);
String jsonString = JSONObject.toJSONString(o);
System.out.println(jsonString);
}`
问题描述
简要描述您碰到的问题。
系统先前的版本是2.0.36,将其升级到2.0.56后解析Double NaN后报数组越界异常。
环境信息
请填写以下信息:
org.apache.fury
fury-core
0.10.0
重现步骤
如何操作可以重现该问题:
这是o的类结构以及属性值
这是执行doubleToScientific的快照
PS:
同样的对象o调用com.alibaba.fastjson2.util.DoubleToDecimal#toString(double, char[], int, boolean),会转化为null