jackson-core icon indicating copy to clipboard operation
jackson-core copied to clipboard

Loss of stream deserialization property resolution

Open dylan-tao opened this issue 2 years ago • 8 comments

When deserializing using the streaming API, the properties of the parsed JSON string are lost when the length () of the JSON string is equal to 156220; when the length () of the JSON string is equal to 13762, the properties of the parsed JSON string are correct. Core Version:2.10.2

JSON Demo:

{
        "T07_Pboc_Info":{
           "pbocv_identity_education": "",
           "pbocv_identity_marriage":"",
           "pbocv_loan_houseall_cnt":"",
           "pbocv_query_creditappr_cnt_p3m":"",
           "pbocv_query_orgnum_p12m":"",
           "pbocv_cc_1stopenacct_mths":"",
           "pboc_inq_numin1m_self":"",
           "pbocv_credit_dlq_mths_p12m":"",
           "pbocv_credit_max_dlqterm_p24m":""
        }
}

Code Demo:

public class input extends AbstractInput  implements Serializable{
    public input$T07_Pboc_Info T07_Pboc_Info = new input$T07_Pboc_Info();

    public void parseFillProperty(String inputJson) throws Exception {
        JsonParser jsonParser = JsonParserConstant.FACTORY.createParser(inputJson);
        try {
            fillInputRoot(jsonParser);
        } finally {
            jsonParser.close();
        }
    }

    private void fillInputRoot(JsonParser jsonParser) throws Exception {
        int attrNeedCnt = 1;
        while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            if(attrNeedCnt <= 0) {
                continue;
            }
            String fieldName = jsonParser.getCurrentName();
            if ("T07_Pboc_Info".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        this.T07_Pboc_Info = new input$T07_Pboc_Info();
                fillInputT07_Pboc_Info(this.T07_Pboc_Info, jsonParser);
		        attrNeedCnt--;
		    }
            else{
                jsonParser.nextToken();
            }
        }
    }

    private void fillInputT07_Pboc_Info(input$T07_Pboc_Info T07_Pboc_Info, JsonParser jsonParser) throws Exception {
        int attrNeedCnt = 9;
        while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
            if(attrNeedCnt <= 0) {
                continue;
            }
            String fieldName = jsonParser.getCurrentName();
            if ("pbocv_identity_education".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_identity_education = jsonParser.getText();
		        attrNeedCnt--;
		    } else if ("pbocv_identity_marriage".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_identity_marriage = jsonParser.getText();
		        attrNeedCnt--;
		    } else if ("pbocv_loan_houseall_cnt".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_loan_houseall_cnt = jsonParser.getIntValue();
		        attrNeedCnt--;
		    } else if ("pbocv_query_creditappr_cnt_p3m".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_query_creditappr_cnt_p3m = jsonParser.getIntValue();
		        attrNeedCnt--;
		    } else if ("pbocv_query_orgnum_p12m".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_query_orgnum_p12m = jsonParser.getIntValue();
		        attrNeedCnt--;
		    } else if ("pbocv_cc_1stopenacct_mths".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_cc_1stopenacct_mths = jsonParser.getIntValue();
		        attrNeedCnt--;
		    } else if ("pboc_inq_numin1m_self".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pboc_inq_numin1m_self = jsonParser.getIntValue();
		        attrNeedCnt--;
		    } else if ("pbocv_credit_dlq_mths_p12m".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_credit_dlq_mths_p12m = jsonParser.getIntValue();
		        attrNeedCnt--;
		    } else if ("pbocv_credit_max_dlqterm_p24m".equals(fieldName)) {
		        if(Objects.equals(jsonParser.currentToken(), JsonToken.FIELD_NAME)){
			        jsonParser.nextToken();
		        }
		        T07_Pboc_Info.pbocv_credit_max_dlqterm_p24m = jsonParser.getIntValue();
		        attrNeedCnt--;
		    }
            else{
                jsonParser.nextToken();
            }
        }
    }
}

dylan-tao avatar Jun 17 '22 13:06 dylan-tao

2.10.2 is an old version -- can you reproduce this with 2.13.3? There is a non-trivial chance of a fix in-between so this would verify whether

  1. Problem still exists, OR
  2. Has been fixed in which case I can probably find the issue in release notes

cowtowncoder avatar Jun 17 '22 21:06 cowtowncoder

Link is based on the spring-boot-2.7.0 and jackson-2.13.3 version of the use case test, the above problems still exist, please help to confirm whether a bug, please read the detailed operation README.md, thanks.

dylan-tao avatar Jun 18 '22 07:06 dylan-tao

Why is left-to-right nextToken resolution lost when the problem of missing resolution is fixed by skipping child node resolution? Check out the test case project above, please~

dylan-tao avatar Jun 18 '22 10:06 dylan-tao

Why is left-to-right nextToken resolution lost when the problem of missing resolution is fixed by skipping child node resolution? Check out the test case project above, please~ Fix Code: else if (fieldName == null) { jsonParser.nextToken(); } else { jsonParser = jsonParser.skipChildren(); jsonParser.nextToken(); }

dylan-tao avatar Jun 18 '22 10:06 dylan-tao

I don't understand what you are trying to say here unfortunately. What is getting lost, when?

What I need is a unit test, without any external framework; this helps isolate Spring Boot issues from Jackson issues. I do not troubleshoot Spring Boot (and other framework parts), nor do I step through code or humongous documents.

Unfortunately above information is not enough for me to help you: the original was missing type input$T07_Pboc_Info and the input looked like a small snippet instead of something with length 156220. There are couple of things code should probably, including verifying that the current token is what is expected (f.ex, before calling parser.getIntValue() it would be good to verify currentToken() is JsonToken.VALUE_NUMBER_INT) but I don't see anything specifically incorrect.

The original description suggested this could be a buffer boundary condition for tokenization so I would be interested in figuring out what is happening. But I need a more self-contained test case.

cowtowncoder avatar Jun 18 '22 23:06 cowtowncoder

I don't understand what you are trying to say here unfortunately. What is getting lost, when?

What I need is a unit test, without any external framework; this helps isolate Spring Boot issues from Jackson issues. I do not troubleshoot Spring Boot (and other framework parts), nor do I step through code or humongous documents.

Unfortunately above information is not enough for me to help you: the original was missing type input$T07_Pboc_Info and the input looked like a small snippet instead of something with length 156220. There are couple of things code should probably, including verifying that the current token is what is expected (f.ex, before calling parser.getIntValue() it would be good to verify currentToken() is JsonToken.VALUE_NUMBER_INT) but I don't see anything specifically incorrect.

The original description suggested this could be a buffer boundary condition for tokenization so I would be interested in figuring out what is happening. But I need a more self-contained test case.

Without the Spring boot framework, the JSON length of the unit test input exceeds the length of the Java String and can only be tested by issuing a request to the body, You can copy the metadata object and request JSON out for testing. Test Project:https://github.com/dylan-tao/jackson-test

dylan-tao avatar Jun 19 '22 06:06 dylan-tao

I don't understand what you are trying to say here unfortunately. What is getting lost, when? What I need is a unit test, without any external framework; this helps isolate Spring Boot issues from Jackson issues. I do not troubleshoot Spring Boot (and other framework parts), nor do I step through code or humongous documents. Unfortunately above information is not enough for me to help you: the original was missing type input$T07_Pboc_Info and the input looked like a small snippet instead of something with length 156220. There are couple of things code should probably, including verifying that the current token is what is expected (f.ex, before calling parser.getIntValue() it would be good to verify currentToken() is JsonToken.VALUE_NUMBER_INT) but I don't see anything specifically incorrect. The original description suggested this could be a buffer boundary condition for tokenization so I would be interested in figuring out what is happening. But I need a more self-contained test case.

Without the Spring boot framework, the JSON length of the unit test input exceeds the length of the Java String and can only be tested by issuing a request to the body, You can copy the metadata object and request JSON out for testing. Test Project:https://github.com/dylan-tao/jackson-test

Call method: input input = new input(); input.parseFillProperty(json);

Metadata: com.example.jacksontest.metadata#input; com.example.jacksontest.metadata#input$T07_Pboc_Info; com.example.jacksontest.metadata#AbstractInput;

Json:
{"application_id":"1002","channel_id":"01","product_id":"01","DSWorkflow":{"state":"START","step_no":2,"next_ds_codes":"NA"},"T01_Apply_Info":{"T011_Cus_Info":{"applist_mobile":"17163852756","applist_name":"","applist_income":"","applist_education_degree":"","applist_marital_state":"","applist_industry":"","applist_occupation":"","applist_res_addr_prov":"","applist_res_addr_city":"","applist_res_addr_district":"","applist_res_addr_detail":"","applist_company":"","applist_company_telephone":"","applist_comp_addr_prov":"","applist_comp_addr_city":"","applist_comp_addr_district":"","applist_comp_addr_detail":"","applist_contact1_name":"","applist_contact1_mobile":"","applist_contact1_relation":"","applist_contact2_name":"","applist_contact2_mobile":"","applist_contact2_relation":""},"T012_Idcard_Info":{"applist_id_nbr":"429006200104210345","applist_id_type":"","applist_id_nationality":"","applist_regaddr":"","applist_id_issuing_authority":"","applist_id_enddate":""},"T013_Bankcard_Info":{"appcrd_name":"","appcrd_bank_name":"","appcrd_card_no":"","appcrd_mobile":""},"T014_Facerecog_Info":{"f_facerecog_score":0,"f_facerecog_result":"","f_facerecog_trial_count":0,"f_facerecog_fail_count":0},"T015_Credit_Info":{"app_eventtype":"1","app_creditid":"","app_creditlimit":0,"app_creditrate":0,"app_withdrawamount":0,"app_repaytype":"","app_totalperiod":0},"T016_Apply_Derivate":{"appdrv_regaddr_prov":"","appdrv_regaddr_city":"","appdrv_mobile_prov":"","appdrv_mobile_city":"","appdrv_telphone_prov":"","appdrv_telphone_city":""},"T017_Platform_DecisionInfo":{"pbocQuery":"","RM0001":0,"RM0002":"L","RM0003":0,"RM0004":0,"RM0005":1,"RM0006":0,"RM0007":0,"RM0008":0,"RM0009":0,"RM0010":0,"RM1001":0,"RM1002":0,"RM1003":0,"RM1004":0,"RM1005":0,"RM1006":0,"RM1007":0,"RM1008":0,"RM1009":0,"RM1010":0,"RM1011":0,"RM1012":0,"RM1013":0,"RM1014":0,"RM1015":0,"RM1016":0,"RM1017":0,"RM1018":0,"RM1019":0,"RM1020":0,"RM1021":0,"RM1022":0,"RM1023":0,"RM1024":0,"RM1025":0,"riskGrade":0,"creditRating":"","customerStickiness":"","mobileInfo":"","loanAppRating":"","loanAppRating2":0,"institutionType":"","whole_power":0,"consumer_stability":0,"flight_airport_tendency":"","rest_regular":0,"login_period":"","vacation_day_desire":0,"pay_type":"","price_sensitive":0,"plan_prob":0,"odc_prob":0,"city_stable":0,"order_platform":"","destination_tendency":"","car_prob":0,"student_prob":0,"education":"","house_prob":0,"family_prob":0,"platform_reserved_str1":"","platform_reserved_str2":"","platform_reserved_str3":"","platform_reserved_int1":0,"platform_reserved_int2":0,"platform_reserved_int3":0,"platform_reserved_dou1":0,"platform_reserved_dou2":0,"platform_reserved_dou3":0,"occupation":0}},"T07_Pboc_Info":{"pbocv_pboc_flag":1,"pbocv_query_latest_date":"","pbocv_decision_code":"","pbocv_reject_code":"","pbocv_creditblank_flag":"","pbocv_identity_education":"33","pbocv_identity_marriage":"1","pbocv_identity_mobile":"","pbocv_identity_occupation":"","pbocv_basic_disnote_num":0,"pbocv_basic_selfstate_num":0,"pbocv_guarantee_sum_balance":0,"pbocv_fellback_sum_cnt":0,"pbocv_credit_badloan_if":"","pbocv_collectionCnt":0,"pbocv_coll_credloan_his_if":0,"pbocv_coll_credloan_cur_if":0,"pbocv_coll_max_dlqterm":0,"pbocv_credit_max_dlqterm_cur":0,"pbocv_credit_dlqamt_cur":"","pbocv_credit_dlq500upamt_if":"","pbocv_credit_max_dlqamt_cur":0,"pbocv_credit_dlq_mths_p12m":0,"pbocv_credit_max_dlqterm_p3m":0,"pbocv_credit_max_dlqterm_p6m":0,"pbocv_credit_max_dlqterm_p12m":0,"pbocv_credit_max_dlqterm_p24m":0,"pbocv_credit_accum_dlqcnt_p3m":0,"pbocv_credit_accum_dlqcnt_p6m":0,"pbocv_credit_accum_dlqcnt_p12m":0,"pbocv_credit_accum_dlqcnt_p24m":0,"pbocv_cc_record_if":0,"pbocv_cc_1stopenacct_mths":0,"pbocv_cc_1stnormopenacct_mths":0,"pbocv_credit_1stopen_mths":0,"pbocv_credit_1stopenacct_mths":0,"pbocv_cc_unclsed_cnt":0,"pbocv_cc_unclsed_org_cnt":0,"pbocv_cc_bal0up_accts":0,"pbocv_cc_unclsed_sum_creditlmt":0,"pbocv_cc_max_limit":0,"pbocv_cc_min_creditlimit":0,"pbocv_cc_avg_activelmt":0,"pbocv_cc_avg_creditlmt":0,"pbocv_cc_creditlimit_75per":0,"pbocv_cc_sumlimitamt_p6m":0,"pbocv_cc_utlzed_creditline":0,"pbocv_cc_unclsed_avgutllmt_p6m":0,"pbocv_cc_avg_limitrate":0,"pbocv_cc_lmtutlrate_p6m":0,"pbocv_cc_max_lmtutlrate":0,"pbocv_cc_utlrate50up_accts":0,"pbocv_cc_utlrate75up_accts":0,"pbocv_cc_utlrate85up_accts":0,"pbocv_cc_lmtutlrate90up_accts":0,"pbocv_cc_due_amt_inst":0,"pbocv_cc_repayments_amt_inst":0,"pbocv_cc_repayments_pct":0,"pbocv_cc_unclsed_undlqcur_cnt":0,"pbocv_cc_dlq_accts":0,"pbocv_cc_max_dlqterm_cur":0,"pbocv_cc_worst_status_cur":"","pbocv_cc_total_dlqamt_cur":0,"pbocv_cc_max_dlqamt_mthly":0,"pbocv_cc_max_dlqamt_cur":0,"pbocv_cc_500nodelqflg_p6m":"","pbocv_cc_max_dlqterm_p3m":0,"pbocv_cc_max_dlqterm_p6m":0,"pbocv_cc_max_dlqterm_p12m":0,"pbocv_cc_max_dlqterm_p24m":0,"pbocv_cc_accum_dlqcnt_p3m":0,"pbocv_cc_accum_dlqcnt_p6m":0,"pbocv_cc_accum_dlqcnt_p12m":0,"pbocv_cc_accum_dlqcnt_p24m":0,"pbocv_cc_accum_dlq1cnt_p3m":0,"pbocv_cc_accum_dlq1cnt_p6m":0,"pbocv_cc_accum_dlq1cnt_p12m":0,"pbocv_cc_accum_dlq1cnt_p24m":0,"pbocv_cc_accum_dlq2cnt_p3m":0,"pbocv_cc_accum_dlq2cnt_p6m":0,"pbocv_cc_accum_dlq2cnt_p12m":0,"pbocv_cc_accum_dlq2cnt_p24m":0,"pbocv_cc_nodelq30d_p12m":0,"pbocv_cc_nodelq90d_p24m":0,"pbocv_cc_bgstate_p24m":0,"pbocv_flgsccnodelq6m":"","pbocv_scc_nodelq_p6m":0,"pbocv_scc_nodelqcnt_p12m":0,"pbocv_scc_nodelqcnt_p24m":0,"pbocv_scc_nodelq30d_p12m":0,"pbocv_scc_nodelq90d_p24m":0,"pbocv_scc_nodelq180d_p24m":0,"pbocv_scc_bgstate_p24m":0,"pbocv_loan_record_if":0,"pbocv_loan_1stopenacct_mths":0,"pbocv_loan_1stopen_mths":0,"pbocv_loan_house_1stopen_mths":0,"pbocv_loan_car_1stopen_mths":0,"pbocv_bank_loan_cnt":0,"pbocv_nonbank_loan_cnt":0,"pbocv_loan_unclred_cnt_cur":0,"pbocv_loan_sumloanamt_p6m":0,"pbocv_loan_unclred_bal_cur":0,"pbocv_loan_noncarhouse_bal":0,"pbocv_loan_avg_bal":0,"pbocv_loan_payamtmonth":0,"pbocv_loan_unclred_avgdue_p6m":0,"pbocv_loan_otherspayamtmonth":0,"pbocv_loan_total_dlqamt_cur":0,"pbocv_loan_dlq_cnt":0,"pbocv_loan_worst_status_cur":"","pbocv_loan_max_dlqamt_mthly":0,"pbocv_basic_loanovdue_mon":0,"pbocv_basic_loanovdue_maxmon":0,"pbocv_loan_max_dlqterm_cur":0,"pbocv_loan_max_dlqamt_cur":0,"pbocv_loan_nodelqflg_p6m":"","pbocv_loan_max_dlqterm_p3m":0,"pbocv_loan_max_dlqterm_p6m":0,"pbocv_loan_max_dlqterm_p12m":0,"pbocv_loan_max_dlqterm_p24m":0,"pbocv_loan_accum_dlqcnt_p3m":0,"pbocv_loan_accum_dlqcnt_p6m":0,"pbocv_loan_accum_dlqcnt_p12m":0,"pbocv_loan_accum_dlqcnt_p24m":0,"pbocv_loan_accum_dlq1cnt_p3m":0,"pbocv_loan_accum_dlq1cnt_p6m":0,"pbocv_loan_accum_dlq1cnt_p12m":0,"pbocv_loan_accum_dlq1cnt_p24m":0,"pbocv_loan_accum_dlq2cnt_p3m":0,"pbocv_loan_accum_dlq2cnt_p6m":0,"pbocv_loan_accum_dlq2cnt_p12m":0,"pbocv_loan_accum_dlq2cnt_p24m":0,"pbocv_loan_nodelq30d_p12m":0,"pbocv_loan_nodelq90d_p24m":0,"pbocv_loan_zdgbstate_p24m":0,"pbocv_loan_guacredunpaidloanorg":0,"pbocv_loan_guacredunpaidamt":0,"pbocv_warrant_worst_status_cur":"","pbocv_loan_car_cnt":0,"pbocv_loan_house_cnt":0,"pbocv_loan_houseall_cnt":0,"pbocv_loan_other_cnt":0,"pbocv_house_cleared_if":"","pbocv_house_repay_amt_mthly":0,"pbocv_house_cleared_mths":0,"pbocv_car_cleared_if":"","pbocv_car_cleared_mths":0,"pbocv_house_accum_dlq1cnt_p3m":0,"pbocv_house_accum_dlq1cnt_p6m":0,"pbocv_house_accum_dlq1cnt_p12m":0,"pbocv_house_accum_dlq1cnt_p24m":0,"pbocv_house_accum_dlq2cnt_p3m":0,"pbocv_house_accum_dlq2cnt_p6m":0,"pbocv_house_accum_dlq2cnt_p12m":0,"pbocv_house_accum_dlq2cnt_p24m":0,"pbocv_comhs_accum_dlq1cnt_p3m":0,"pbocv_comhs_accum_dlq1cnt_p6m":0,"pbocv_comhs_accum_dlq1cnt_p12m":0,"pbocv_comhs_accum_dlq1cnt_p24m":0,"pbocv_comhs_accum_dlq2cnt_p3m":0,"pbocv_comhs_accum_dlq2cnt_p6m":0,"pbocv_comhs_accum_dlq2cnt_p12m":0,"pbocv_comhs_accum_dlq2cnt_p24m":0,"pbocv_loan_noncrhs_avgamt_p12m":0,"pbocv_loan_noncrhs_orgcnt_p12m":0,"pbocv_loan_comsumerorg_p3m":0,"pbocv_loan_businessorg_p3m":0,"pbocv_loan_fammerorg_p3m":0,"pbocv_cc_creditcardorg_p3m":0,"pbocv_loan_houseorg_p3m":0,"pbocv_studentloanorg3m":0,"pbocv_loan_othersorg_p3m":0,"pbocv_query_if":0,"pbocv_query_prsnl_cnt_p1m":0,"pbocv_query_credit_ltest_mths":0,"pbocv_query_creditappr_cnt_p1m":0,"pbocv_query_creditappr_cnt_p3m":0,"pbocv_query_creditappr_cnt_p6m":0,"pbocv_query_crdtappr_cnt_p12m":0,"pbocv_query_crdtappr_cnt_p24m":0,"pbocv_query_ccappr_cnt_p1m":0,"pbocv_query_ccappr_cnt_p3m":0,"pbocv_query_ccappr_cnt_p6m":0,"pbocv_query_ccappr_cnt_p12m":0,"pbocv_query_ccappr_cnt_p24m":0,"pbocv_query_loanappr_cnt_p1m":0,"pbocv_query_loanappr_cnt_p3m":0,"pbocv_query_loanappr_cnt_p6m":0,"pbocv_query_loanappr_cnt_p12m":0,"pbocv_query_loanappr_cnt_p24m":0,"pbocv_query_orgnum_p1m":0,"pbocv_query_orgnum_p3m":0,"pbocv_query_orgnum_p6m":0,"pbocv_query_orgnum_p12m":0,"pbocv_query_orgnum_p24m":0,"pbocv_query_crd_orgnum_p1m":0,"pbocv_query_crd_orgnum_p3m":0,"pbocv_query_crd_orgnum_p6m":0,"pbocv_query_crd_orgnum_p12m":0,"pbocv_query_crd_orgnum_p24m":0,"pbocv_query_loan_orgnum_p1m":0,"pbocv_query_loan_orgnum_p3m":0,"pbocv_query_loan_orgnum_p6m":0,"pbocv_query_loan_orgnum_p12m":0,"pbocv_query_loan_orgnum_p24m":0,"pbocv_query_guaranchkorg_p1m":0,"pbocv_query_guaranchkorg_p3m":0,"pbocv_query_acceschkorg_p1m":0,"pbocv_query_acceschkorg_p3m":0,"pbocv_fund_latest_status":"","pbocv_fund_ltstdpsit_amt_mthly":0,"pbocv_housefundcompercent":"","pbocv_housefundownpercent":"","pbocv_fund_max_duration_byorg":0,"pbocv_fund_earliest_mths":0,"pbocv_fund_mthstoservic_ratio":0,"pbocv_specialtrade_p5y":0,"pbocv_specialtrade2_p5y":0,"pbocv_basic_asset_num":0,"pbocv_executed_cases":0,"pbocv_credloan_repay_status":"","pbocv_basic_credloan_mon":0,"pbocv_basic_credit_mon":0,"pbocv_credit_dlq_mths_p3m":0,"pbocv_credit_dlq_mths_p6m":0,"pbocv_credit_dlq_mths_p24m":0,"pbocv_cc_max_ovdamt_p6m":0,"pbocv_cc_max_ovdamt_q90d_p24m":0,"pbocv_loan_max_dlqterm_p60m":0,"pbocv_loan_accum_dlqcnt_p60m":0,"pbocv_loan_house_cnt_current":0,"pbocv_cc_max_lmtutlrate2":0,"pbocv_cc_max_dlqterm_p60m":0,"pbocv_scc_max_dlqterm_p3m":0,"pbocv_scc_max_dlqterm_p6m":0,"pbocv_scc_max_dlqterm_p12m":0,"pbocv_scc_max_dlqterm_p24m":0,"pbocv_scc_max_dlqterm_p60m":0,"pbocv_cc_max_ovdamt_q180d_p60m":0,"pbocv_credit_consta_dlqcnt_p3m":0,"pbocv_credit_consta_dlqcnt_p6m":0,"pbocv_credit_conti_dlqcnt_p12m":0,"pbocv_credit_conti_dlqcnt_p24m":0,"pbocv_credit_conti_dlqcnt_p60m":0,"pbocv_credit_maxdlqtermamt_p3m":0,"pbocv_credit_maxdlqtermamt_p6m":0,"pbocv_credit_maxdlqteramt_p12m":0,"pbocv_credit_maxdlqteramt_p24m":0,"pbocv_credit_max_dlqamt_p3m":0,"pbocv_credit_max_dlqamt_p6m":0,"pbocv_credit_max_dlqamt_p12m":0,"pbocv_credit_max_dlqamt_p24m":0,"pbocv_loan_consta_dlqcnt_p3m":0,"pbocv_loan_consta_dlqcnt_p6m":0,"pbocv_loan_consta_dlqcnt_p12m":0,"pbocv_loan_consta_dlqcnt_p24m":0,"pbocv_loan_consta_dlqcnt_p60m":0,"pbocv_loan_maxdlqtermamt_p3m":0,"pbocv_loan_maxdlqtermamt_p6m":0,"pbocv_loan_maxdlqtermamt_p12m":0,"pbocv_loan__maxdlqtermamt_p24m":0,"pbocv_loan_max_dlqamt_p3m":0,"pbocv_loan_max_dlqamt_p6m":0,"pbocv_loan_max_dlqamt_p12m":0,"pbocv_loan_max_dlqamt_p24m":0,"pbocv_cc_consta_dlqcnt_p3m":0,"pbocv_cc_consta_dlqcnt_p6m":0,"pbocv_cc_consta_dlqcnt_p12m":0,"pbocv_cc_consta_dlqcnt_p24m":0,"pbocv_cc_consta_dlqcnt_p60m":0,"pbocv_cc_maxdlqtermamt_p3m":0,"pbocv_cc_maxdlqtermamt_p6m":0,"pbocv_cc_maxdlqtermamt_p12m":0,"pbocv_cc_maxdlqtermamt_p24m":0,"pbocv_cc_max_dlqamt_p3m":0,"pbocv_cc_max_dlqamt_p6m":0,"pbocv_cc_max_dlqamt_p12m":0,"pbocv_cc_max_dlqamt_p24m":0,"pbocv_bankln_guacredunpaidorg":0,"pbocv_nbankln_guacredunpaidorg":0,"pbocv_loan_guacredunpaidavgamt":0,"pbocv_bankln_guacredunpaidamt":0,"pbocv_nbankln_guacredunpaidamt":0,"pbocv_md_c_orgcnt_lmt08_p":0,"pbocv_md_culmt_pctp16":0,"pbocv_md_c_yq_ws_rl6_24m":0,"pbocv_md_l_cnt_l3_12":0,"pbocv_scc_max_dlqterm_cur":0,"pbocv_scc_max_dlqamt_cur":0,"pbocv_scc_max_dlqamt_p12m":0,"pbocv_loan_bad_if":"","pbocv_credit_all_1stopen_mths":0,"pbocv_cc_otsunclsed_sum_crdlmt":0,"pbocv_cc_rmb_unclsed_cnt":0,"pboc_gender":"","pboc_birthday":"","pboc_marriage":"","pboc_edulevel":"","pboc_basic_edudegree":"","pboc_work_status":"","pboc_nationality":"","pboc_email":"","pboc_score":0,"pboc_rank":0,"pboc_identy_mobile1":"","pboc_identy_mobile2":"","pboc_identy_mobile3":"","pboc_identy_mobile4":"","pboc_identy_mobile5":"","pboc_identy_mobile1_date":"","pboc_identy_mobile2_date":"","pboc_identy_mobile3_date":"","pboc_identy_mobile4_date":"","pboc_identy_mobile5_date":"","pboc_identy_officephone1":"","pboc_identy_officephone2":"","pboc_identy_officephone3":"","pboc_identy_officephone4":"","pboc_identy_officephone5":"","pboc_identy_homephone1":"","pboc_identy_homephone2":"","pboc_identy_homephone3":"","pboc_identy_homephone4":"","pboc_identy_homephone5":"","pboc_identy_postaddr":"","pboc_identy_householdaddr":"","pboc_identy_spouse_id":"","pboc_identy_spouse_comp":"","pboc_identy_spouse_mobile":"","pboc_reside_addr1":"","pboc_reside_addr2":"","pboc_reside_addr3":"","pboc_reside_addr4":"","pboc_reside_addr5":"","pboc_reside_update1":"","pboc_reside_update2":"","pboc_reside_update3":"","pboc_reside_update4":"","pboc_reside_update5":"","pboc_career_comp1":"","pboc_career_comp2":"","pboc_career_comp3":"","pboc_career_comp4":"","pboc_career_comp5":"","pboc_career_comp1_kind":"","pboc_career_comp2_kind":"","pboc_career_comp3_kind":"","pboc_career_comp4_kind":"","pboc_career_comp5_kind":"","pboc_career_compaddr1":"","pboc_career_compaddr2":"","pboc_career_compaddr3":"","pboc_career_compaddr4":"","pboc_career_compaddr5":"","pboc_career_joinyear1":"","pboc_career_joinyear2":"","pboc_career_joinyear3":"","pboc_career_joinyear4":"","pboc_career_joinyear5":"","pboc_career_update1":"","pboc_career_update2":"","pboc_career_update3":"","pboc_career_update4":"","pboc_career_update5":"","pboc_hfund_comp1":"","pboc_hfund_comp2":"","pboc_hfund_comp3":"","pboc_hfund_comp4":"","pboc_hfund_comp5":"","pboc_hfund_update1":"","pboc_hfund_update2":"","pboc_hfund_update3":"","pboc_hfund_update4":"","pboc_hfund_update5":"","pboc_warrant_num_p":0,"pboc_warrant_amt_p":0,"pboc_warrant_bal_p":0,"pboc_related_duty_num_p":0,"pboc_related_duty_amt_p":0,"pboc_related_duty_bal_p":0,"pboc_warrant_num_e":0,"pboc_warrant_amt_e":0,"pboc_warrant_bal_e":0,"pboc_related_duty_num_e":0,"pboc_related_duty_amt_e":0,"pboc_related_duty_bal_e":0,"pboc_houseloan_num":0,"pboc_busiloan_num":0,"pboc_otherloan_num":0,"pboc_cc_num":0,"pboc_scc_num":0,"pboc_else_num":0,"pboc_houseloan_1st_mth":"","pboc_busiloan_1st_mth":"","pboc_otherloan_1st_mth":"","pboc_cc_1st_mth":"","pboc_scc_1st_mth":"","pboc_else_1st_mth":"","pboc_basic_bad_num":0,"pboc_basic_bad_bal":0,"pboc_basic_asset_num":0,"pboc_basic_assetdsp_bal":0,"pboc_basic_dk_num":0,"pboc_basic_dk_bal":0,"pboc_od_nrvlv_loan_num":0,"pboc_od_nrvlv_loan_mth":0,"pboc_od_nrvlv_loan_maxod_amt":0,"pboc_od_nrvlv_loan_maxod_mth":0,"pboc_od_rvlv_credit_num":0,"pboc_od_rvlv_credit_mth":0,"pboc_od_rvlv_credit_maxod_amt":0,"pboc_od_rvlv_credit_maxod_mth":0,"pboc_od_rvlv_loan_num":0,"pboc_od_rvlv_loan_mth":0,"pboc_od_rvlv_loan_maxod_amt":0,"pboc_od_rvlv_loan_maxod_mth":0,"pboc_od_cc_num":0,"pboc_od_cc_mth":0,"pboc_od_cc_maxod_amt":0,"pboc_od_cc_maxod_mth":0,"pboc_od_scc_num":0,"pboc_od_scc_mth":0,"pboc_od_scc_maxod_amt":0,"pboc_od_scc_maxod_mth":0,"pboc_acct_nrvlv_loan_orgs":0,"pboc_acct_nrvlv_loan_num":0,"pboc_acct_nrvlv_loan_amt_sum":0,"pboc_acct_nrvlv_loan_bal":0,"pboc_acct_nrvlv_ln_avgrp_in6m":0,"pboc_acct_nrvlv_credit_orgs":0,"pboc_acct_nrvlv_credit_num":0,"pboc_acct_nrvlv_credit_amt_sum":0,"pboc_acct_nrvlv_credit_bal":0,"pboc_acct_nrvlv_cre_avgrp_in6m":0,"pboc_acct_rvlv_loan_orgs":0,"pboc_acct_rvlv_loan_num":0,"pboc_acct_rvlv_loan_amt_sum":0,"pboc_acct_rvlv_loan_bal":0,"pboc_acct_rvlv_loan_avgrp_in6m":0,"pboc_acct_cc_orgs":0,"pboc_acct_cc_num":0,"pboc_acct_cc_amt_sum":0,"pboc_acct_cc_amt_max":0,"pboc_acct_cc_amt_min":0,"pboc_acct_cc_amt_used":0,"pboc_acct_cc_avg_useamt_in6m":0,"pboc_acct_scc_orgs":0,"pboc_acct_scc_num":0,"pboc_acct_scc_amt_sum":0,"pboc_acct_scc_amt_max":0,"pboc_acct_scc_amt_min":0,"pboc_acct_scc_amt_used":0,"pboc_acct_scc_avg_useamt_in6m":0,"pboc_deq_telecom_num":0,"pboc_deq_telecom_amt":0,"pboc_pub_tax_num":0,"pboc_pub_tax_amt":0,"pboc_pub_mspj_num":0,"pboc_pub_mspj_amt":0,"pboc_pub_qzzx_num":0,"pboc_pub_qzzx_amt":0,"pboc_pub_xzcf_num":0,"pboc_pub_xzcf_amt":0,"pboc_inq_orgsin1m_loan":0,"pboc_inq_orgsin1m_cc":0,"pboc_inq_numin1m_loan":0,"pboc_inq_numin1m_cc":0,"pboc_inq_numin1m_self":0,"pboc_inq_numin2y_port":0,"pboc_inq_numin2y_warrant":0,"pboc_inq_numin2y_merchant":0,"pboc_pub_zlsqf_num":0,"pboc_pub_zlsqf_amt":0},"DerivedVariables":{"derived_random_nbr":44}}

dylan-tao avatar Jun 19 '22 06:06 dylan-tao

Would need a stand-alone test case that has no external dependencies: cannot be part of Spring Boot project (for example). This is necessary to rule out possibility that something in another library/framework is causing the problem.

As is, unfortunately I cannot reproduce the issue: I do not have time to dig into provided test case at this point.

I'll leave the issue open if anyone else has time or insight into whatever the problem might be.

cowtowncoder avatar Jul 30 '22 03:07 cowtowncoder

nextToken and currentToken question,We have perfected the use, thanks!

dylan-tao avatar Mar 25 '23 13:03 dylan-tao

@dylan-tao Ok thank you for the update, best of luck!

cowtowncoder avatar Mar 26 '23 23:03 cowtowncoder