AbsaOSS / AbsaOSS/enceladus

Schema validation exception does not include detailed error message

オープン
#1,046 コメント 0 件 リアクション 0 件 担当者 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 を短くまとめたダイジェスト。