[ 
https://issues.apache.org/jira/browse/NIFI-7843?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17203507#comment-17203507
 ] 

ASF subversion and git services commented on NIFI-7843:
-------------------------------------------------------

Commit f73a019f36f0ef6ebc4dfc634a856fd92a36f3df in nifi's branch 
refs/heads/main from Denes Arvay
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=f73a019 ]

NIFI-7843 Recursive avro schemas fail to write with RecordWriter

NIFI-7843 Recursive avro schemas fail to write with RecordWriter
Add new test case to TestSimpleRecordSchema to test the scenario
when schema name and schema namespace match.

This closes #4550.

Signed-off-by: Peter Turcsanyi <[email protected]>


> Recursive avro schemas fail to write with RecordWriter
> ------------------------------------------------------
>
>                 Key: NIFI-7843
>                 URL: https://issues.apache.org/jira/browse/NIFI-7843
>             Project: Apache NiFi
>          Issue Type: Bug
>            Reporter: Denes Arvay
>            Assignee: Denes Arvay
>            Priority: Major
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> Recursive Avro record with a schema containing self-reference cannot be 
> written by RecordWriter due to infinite loop / StackOverflowError.
> Schema:
> {code:java}
> {
>   "namespace": "dataformat.avro.recursive",  
>   "type": "record",  
>   "name": "PersonRecursive",  
>   "fields": [
>     {"name": "id", "type": "int"},
>     {"name": "name",  "type": ["string", "null"]},
>     {"name": "parent",  "type": ["PersonRecursive", "null"]}  
>   ]
> } {code}
> Exception:
> {code:java}
> 2020-09-24 06:13:21,978 ERROR [Timer-Driven Process Thread-7] 
> o.a.n.processors.standard.ConvertRecord 
> ConvertRecord[id=b666a7ea-0174-1000-894b-7b743c091dc0] 
> ConvertRecord[id=b666a7ea-0174-1000-894b-7b743c091dc0] failed to process 
> session due to java.lang.StackOverflowError; Processor Administratively 
> Yielded for 1 sec: java.lang.StackOverflowError
> java.lang.StackOverflowError: null
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at 
> org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
>         at 
> org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
>         at java.base/java.util.ArrayList.equals(ArrayList.java:561)
>         at 
> java.base/java.util.Collections$UnmodifiableList.equals(Collections.java:1307)
>         at 
> org.apache.nifi.serialization.SimpleRecordSchema.equals(SimpleRecordSchema.java:175)
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at 
> org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
>         at 
> org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
>         at java.base/java.util.ArrayList.equals(ArrayList.java:561)
>         at 
> java.base/java.util.Collections$UnmodifiableList.equals(Collections.java:1307)
>         at 
> org.apache.nifi.serialization.SimpleRecordSchema.equals(SimpleRecordSchema.java:175)
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at 
> org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
>         at 
> org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
>         at java.base/java.util.ArrayList.equals(ArrayList.java:561)
>         at 
> java.base/java.util.Collections$UnmodifiableList.equals(Collections.java:1307)
>         at 
> org.apache.nifi.serialization.SimpleRecordSchema.equals(SimpleRecordSchema.java:175)
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at 
> org.apache.nifi.serialization.record.type.RecordDataType.equals(RecordDataType.java:61)
>         at 
> org.apache.nifi.serialization.record.RecordField.equals(RecordField.java:130)
>         at java.base/java.util.Objects.equals(Objects.java:77)
>         at java.base/java.util.ArrayList.equalsRange(ArrayList.java:574)
>         at java.base/java.util.ArrayList.equals(ArrayList.java:561) {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to