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

Ryan Blue commented on AVRO-1655:
---------------------------------

Rather than adding a null check, I think the right thing to do is to add a 
{{createRecord}} method that take the field list as an argument. Schemas are, 
sort of, Immutable and AVRO-1608 is working toward making them actually 
Immutable. Part of that work is to remove the need to add a list of fields 
after creating a Schema, but that shouldn't stop your use case most of the 
time, as long as you aren't creating recursive schemas.

> RecordSchema#fieldsToJson can throw NullPointerException
> --------------------------------------------------------
>
>                 Key: AVRO-1655
>                 URL: https://issues.apache.org/jira/browse/AVRO-1655
>             Project: Avro
>          Issue Type: Bug
>    Affects Versions: 1.7.7
>            Reporter: Lars Francke
>            Assignee: Lars Francke
>         Attachments: AVRO-1655.1.patch
>
>
> The code just does
> {code}
>       for (Field f : fields) {
> {code}
> without ever checking if fields is set. There is a {{createRecord}} version 
> that does not take fields so this can be empty. This is especially annoying 
> within the Scala/Spark REPL as that immediately prints out the result of 
> everything you type so it calls {{toString}} which then fails and that even 
> leaves the object unset in the REPL.
> I'll attach a patch that checks whether {{fields}} is null.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to