78606514ad9a1d5094509e45753cea4f3d93a3bb
상대 시스템이 0 패딩된 코드값을 따옴표 없이(=JSON 숫자로) 보내면 표준 파서가 "Invalid numeric value: Leading zeroes not allowed" 로 전문 전체를 거부한다. 전문을 못 읽고 실패하는 것보다 값을 받아들이는 쪽이 낫다고 판단해 ALLOW_LEADING_ZEROS_FOR_NUMBERS 를 켠다. newNumberSafeMapper() 한 곳에 넣어 이를 쓰는 전 경로(JsonReader 표준전문, JacksonUtil.OBJECT_MAPPER 를 타는 어댑터/필터)를 함께 덮는다. WRITE_BIGDECIMAL_AS_PLAIN 을 여기 넣었던 것과 같은 이유다. 주의: 이 옵션은 00001 을 숫자 1 로 만든다(선행 0 미보존). 항목이 NUMBER/LL_NUMBER 로 선언돼 있으면 StandardItem.toTypeValue() 가 어차피 선행 0 을 깎으므로 결과가 같고, STRING/ZZ_STRING 선언이면 자릿수가 사라진다. 후자는 상대에게 따옴표를 붙여 보내달라고 요청하는 것이 정답이다. Jackson 2.12.7 실측: 선행 0 파싱 8종, 숫자 정밀도 왕복 5종, 제어문자 정규화 조합, 과허용 여부(+1 / .5 / 무따옴표키 / 홑따옴표는 여전히 거부) 19건 PASS. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Phh6MSGvgHM3rPgGUU3dzR
Description
No description provided
Languages
Java
100%