Andy Coates created AVRO-4176:
---------------------------------

             Summary: Java parser allows field type to be object with custom 
type
                 Key: AVRO-4176
                 URL: https://issues.apache.org/jira/browse/AVRO-4176
             Project: Apache Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.12.0
            Reporter: Andy Coates


I _think_ the Java implementation of the parser is allowing an invalid field 
definition to be parsed.  The Python parser rejects it.

For example, consider the following field definition (which would be part of 
the `fields` array in a `record` type):

```
{
   "type": {
       "type": "SomeCustomType"
   }
}
```


As I understand it, the above is invalid as the outer `type` can be an object, 
but that object must have a `type` that is one of the built in types, not a 
custom type.

The Java parser does reject double nesting, e.g.



```
{
   "type": {
       "type": \{ "type": "SomeCustomType"  }
   }
}
```

If I'm correct and these are all invalid, then the issue with the Java Parser 
allowing them is it allows invalid schemas to be published (e.g. to the 
Confluent Schema Registry, written in Java), which other language parsers will 
reject, causing issues with x-platform compatibility.

Note: I did try to find an existing bug, but being unsure of the search terms 
to use for this, I couldn't find one



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to