java.lang.VerifyError:
(class: com/alibaba/fastjson/parser/deserializer/FastjsonASMDeserializer_2_類名, method: deserialze signature:
(Lcom/alibaba/fastjson/parser/DefaultJSONParser;
Ljava/lang/reflect/Type;Ljava/lang/Object;I)Ljava/lang/Object;)
Accessing value from uninitialized register 80
- 項目中出現問題的fastJson jar 版本 1.2.8
升級jar包版本到最新版 1.2.44 後問題解決
原因: 當返序列化解析的時候
XXX bbc= JSON.parseObject(data.get(“bbc”).toString(), XXX .class);
XXX bbc= JSONObject.parseObject(data.get(“bbc”).toString(), XXX .class);
反序列化的類中屬性個數正好等於32或者是64的時候就會出錯問題在1.2.29中已經修復,原因是新加防重複功能時,在字段數量爲32或者64時,計算本地變量出錯了.
因爲本人在項目中遇到的屬性等於64個字段,所以測試下32 附上測試代碼
public static void main(String[] args) throws InterruptedException, ExecutionException {
TestClass t = JSONObject.parseObject("{" +
"\"ceShi1\": \"1\"," +
"\"ceShi2\": \"2\"," +
"\"ceShi3\": \"3\"," +
"\"ceShi4\": \"4\"," +
"\"ceShi5\": \"5\"," +
"\"ceShi6\": \"6\"," +
"\"ceShi7\": \"7\"," +
"\"ceShi8\": \"8\"," +
"\"ceShi9\": \"9\"," +
"\"ceShi10\": \"10\"," +
"\"ceShi11\": \"11\"," +
"\"ceShi12\": \"12\"," +
"\"ceShi13\": \"13\"," +
"\"ceShi14\": \"14\"," +
"\"ceShi15\": \"15\"," +
"\"ceShi16\": \"16\"," +
"\"ceShi17\": \"17\"," +
"\"ceShi18\": \"18\"," +
"\"ceShi19\": \"19\"," +
"\"ceShi20\": \"20\"," +
"\"ceShi21\": \"21\"," +
"\"ceShi22\": \"22\"," +
"\"ceShi23\": \"23\"," +
"\"ceShi24\": \"24\"," +
"\"ceShi25\": \"25\"," +
"\"ceShi26\": \"26\"," +
"\"ceShi27\": \"27\"," +
"\"ceShi28\": \"28\"," +
"\"ceShi29\": \"29\"," +
"\"ceShi30\": \"30\"," +
"\"ceShi31\": \"31\"," +
"\"ceShi32\": \"32\"" +
" }", TestClass.class);
}
//實體
public class TestClass {
private String ceShi1;
private String ceShi2;
private String ceShi3;
private String ceShi4;
private String ceShi5;
private String ceShi6;
private String ceShi7;
private String ceShi8;
private String ceShi9;
private String ceShi10;
private String ceShi11;
private String ceShi12;
private String ceShi13;
private String ceShi14;
private String ceShi15;
private String ceShi16;
private String ceShi17;
private String ceShi18;
private String ceShi19;
private String ceShi20;
private String ceShi21;
private String ceShi22;
private String ceShi23;
private String ceShi24;
private String ceShi25;
private String ceShi26;
private String ceShi27;
private String ceShi28;
private String ceShi29;
private String ceShi30;
private String ceShi31;
private String ceShi32;
private String ceShi33;
private String ceShi34;
private String ceShi35;
private String ceShi36;
private String ceShi37;
private String ceShi38;
private String ceShi39;
private String ceShi40;
private String ceShi41;
private String ceShi42;
private String ceShi43;
private String ceShi44;
private String ceShi45;
private String ceShi46;
private String ceShi47;
private String ceShi48;
private String ceShi49;
private String ceShi50;
private String ceShi51;
private String ceShi52;
private String ceShi53;
private String ceShi54;
private String ceShi55;
private String ceShi56;
private String ceShi57;
private String ceShi58;
private String ceShi59;
private String ceShi60;
private String ceShi61;
private String ceShi62;
private String ceShi63;
private String ceShi64;
此處測試可以隨意添加減少實體 所以省去get set方法 測試的時候自己生成
}