From 41542437e4be7b806231dafb30ccfca0a1a98e92 Mon Sep 17 00:00:00 2001 From: David Grossman Date: Thu, 16 Jun 2022 08:47:34 -0700 Subject: [PATCH] [parser] throw exception on bad default value in union (#347) * [parser] throw exception on bad default * exception -> context.addIssue Co-authored-by: David Grossman --- .../com/linkedin/avroutil1/parser/avsc/AvscParser.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/parser/src/main/java/com/linkedin/avroutil1/parser/avsc/AvscParser.java b/parser/src/main/java/com/linkedin/avroutil1/parser/avsc/AvscParser.java index a3668293b..d8637509c 100644 --- a/parser/src/main/java/com/linkedin/avroutil1/parser/avsc/AvscParser.java +++ b/parser/src/main/java/com/linkedin/avroutil1/parser/avsc/AvscParser.java @@ -386,10 +386,12 @@ private AvroNamedSchema parseNamedSchema( //(legal) default values are expected to match the 1st union branch defaultValueExpectedSchema = ((AvroUnionSchema) defaultValueExpectedSchema).getTypes().get(0).getSchema(); } - LiteralOrIssue defaultValurOrIssue = parseLiteral(fieldDefaultValueNode, defaultValueExpectedSchema, fieldName.getValue(), context); - if (defaultValurOrIssue.getIssue() == null) { + LiteralOrIssue defaultValueOrIssue = parseLiteral(fieldDefaultValueNode, defaultValueExpectedSchema, fieldName.getValue(), context); + if (defaultValueOrIssue.getIssue() == null) { //TODO - allow parsing default values that are branch != 0 (and add an issue) - defaultValue = defaultValurOrIssue.getLiteral(); + defaultValue = defaultValueOrIssue.getLiteral(); + } else { + context.addIssue(defaultValueOrIssue.getIssue()); } //TODO - handle issues } else {