[ 
https://issues.apache.org/jira/browse/AVRO-1963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliot West updated AVRO-1963:
------------------------------
    Summary: SchemaBuilder: Redefined records should fail fast  (was: Redefined 
records should fail fast)

> SchemaBuilder: 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.7.7, 1.8.1
>            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)

Reply via email to