BigDecimal 자릿수 검사를 doSetValue() 시점으로 이동

- doSetValue()의 TYPE_BIGDECIMAL case에 isValid() 검사 추가
- 자릿수 초과 오류 발생 시점이 getData()에서 setData()로 통일
- 테스트: 자릿수 초과 3건 기대 예외를 InvalidDataTypeException → MessageSetDataException으로 변경
- JSON_VALIDATION_TEST_PLAN.md 내용 최신화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
curry772
2026-04-23 09:47:04 +09:00
parent ae629d51e6
commit 0e40c71a9d
3 changed files with 155 additions and 21 deletions
@@ -265,6 +265,12 @@ public class JSONMessage extends Message {
setLong( itemPath, new Long(value) );
break;
case Types.TYPE_BIGDECIMAL :
if (SystemKeys.isValidationEnabled() && !isValid(value, item.getLength(), item.getDecimalPointLength())) {
throw new InvalidAccessException(
String.format("Invalid decimal point format Error value=%s,length=%d,pointLength=%d",
value, item.getLength(), item.getDecimalPointLength()),
itemPath);
}
setBigDecimal( itemPath, new BigDecimal(value) );
break;
case Types.TYPE_DOUBLE :