Elliot West created AVRO-1963: --------------------------------- Summary: Redefined records should fail fast Key: AVRO-1963 URL: https://issues.apache.org/jira/browse/AVRO-1963 Project: Avro Issue Type: Bug Affects Versions: 1.8.1, 1.7.7 Reporter: Elliot West
h2. Overview It is currently possible to build an invalid {{Schema}} instance using the {{SchemaBuilder}}, without any error being thrown. The schema in question is invalid because of redefined record types. These are not picked up by the {{SchemaBuilder}}. Failure eventually occurs when calling the {{Schema.toString()}} method. I suggest that failure should occur much earlier such as at the point of introduction of the redeclared record name in the case of {{SchemaBuilder}}. This would make it easier for users to better determine the point of origin of their schema issues. Note that there does not appear to be a similar issue with the {{Schema.parse(String)}} method which fails fast as expected. h2. Test case {code:title=Test case} Schema a = SchemaBuilder.record("A").fields().optionalInt("y").endRecord(); Schema b = SchemaBuilder.record("A").fields().optionalString("x").endRecord(); Schema s = SchemaBuilder .record("S") .fields() .name("a") .type(a) .noDefault() .name("b") .type(b) .noDefault() .endRecord(); // Does not fail s.toString(); // Fails with org.apache.avro.SchemaParseException: Can't redefine: A {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)