Bart created AVRO-2122:
--------------------------

             Summary: Cannot validate schemas with recursive definitions
                 Key: AVRO-2122
                 URL: https://issues.apache.org/jira/browse/AVRO-2122
             Project: Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.8.2
            Reporter: Bart


Validating a schema with a recursive definition will lead to a stack overflow. 
When using the following schema definition:

{noformat}
@namespace("avro")
protocol Unused {

record Node {
  union { null, Node } value = null;
}
}
{noformat}

{code:java}
final SchemaValidator backwardValidator = new SchemaValidatorBuilder()
  .canReadStrategy().validateLatest();
backwardValidator.validate(Node.SCHEMA$, Arrays.asList(Node.SCHEMA$));
{code}

It results in a stack trace:
{noformat}
java.lang.StackOverflowError
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:406)
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:392)
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:383)
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:406)
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:392)
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:406)
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:374)
        at org.apache.avro.io.parsing.Symbol.hasErrors(Symbol.java:406)
        ...
{noformat}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to