diff --git a/lang/java/avro/src/main/java/org/apache/avro/Schema.java b/lang/java/avro/src/main/java/org/apache/avro/Schema.java index f312ecfb6f2..5e62bd1100b 100644 --- a/lang/java/avro/src/main/java/org/apache/avro/Schema.java +++ b/lang/java/avro/src/main/java/org/apache/avro/Schema.java @@ -1497,7 +1497,7 @@ public Parser() { } public Parser(final NameValidator validate) { - this.validate = validate; + this.validate = validate != null ? validate : NameValidator.NO_VALIDATION; } /** diff --git a/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java b/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java index 805f2b80b2a..41f0474c9da 100644 --- a/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java +++ b/lang/java/avro/src/test/java/org/apache/avro/TestSchema.java @@ -621,4 +621,13 @@ void add_types() { assertNotNull(f1); assertEquals(schemaRecord1, f1.schema()); } + + /** + * Tests the behavior of Schema.Parser if its validation option is set to + * `null`. This is then set to the default option `NO_VALIDATION`. + */ + @Test + void testParserNullValidate() { + new Schema.Parser(null).parse("{\"type\":\"record\",\"name\":\"\",\"fields\":[]}"); // Empty name + } }