AbsaOSS / AbsaOSS/enceladus

Schema validation exception does not include detailed error message

未关闭
#1,046 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug priority: undecided Standardization
主要语言
Scala
星标
33
派生
16
PR 合并指标
30 天内没有已合并 PR

描述

## Describe the bug
If an inconsistency is found in a schema definition, Standardization logs a validation error, and then throws an exception that does not contain details of the validation failure.
This makes it hard for a user to investigate schema validation issues.

```
19/11/19 10:49:53 ERROR SchemaChecker$: Validation error for column 'long_type', pattern '': 'FF' cannot be cast to long
19/11/19 10:49:53 INFO RestClient: POST - URL: http://localhost:8080/menas/api/runs/updateRunStatus/548b92d8-4028-42cd-a77e-4d62e9babf29
19/11/19 10:49:53 INFO RestClient: Request Body: ***
19/11/19 10:49:53 INFO StandardizationJob$: Menas API Run URL: http://localhost:8080/menas/api/runs/NumPatternsTest/1/5
19/11/19 10:49:53 INFO StandardizationJob$: Menas UI Run URL: http://localhost:8080/menas/#/runs/NumPatternsTest/1/5
19/11/19 10:49:53 INFO StandardizationJob$: Menas API Run URL: http://localhost:8080/menas/api/runs/NumPatternsTest/1/5
19/11/19 10:49:53 INFO StandardizationJob$: Menas UI Run URL: http:/localhost:8080/menas/#/runs/NumPatternsTest/1/5
Exception in thread "main" za.co.absa.enceladus.utils.validation.ValidationException: A fatal schema validation error occurred.
at za.co.absa.enceladus.standardization.interpreter.StandardizationInterpreter$.validateSchemaAgainstSelfInconsistencies(StandardizationInterpreter.scala:69)
at za.co.absa.enceladus.standardization.interpreter.StandardizationInterpreter$.standardize(StandardizationInterpreter.scala:45)

```
## To Reproduce
Run a Standardization job with a schema that contains invalid metadata. Example:
```json
{
"type": "struct",
"fields": [
{
"name": "long_type",
"type": "long",
"nullable": false,
"metadata": {
"no_radix": "16",
"default": "FF"
}
},
{
"name": "double_type",
"type": "double",
"nullable": true,
"metadata": {
"pattern": "0.#"
}
},
{
"name": "decimal_type",
"type": "decimal(18,2)",
"nullable": false,
"metadata": {
"pattern": "0.#",
"decimal_separator": ",",
"grouping_separator": "."
}
}
]
}
```

## Expected behaviour
The validation exception should contain more details.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。