You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Ryan Blue (JIRA)" <ji...@apache.org> on 2015/03/31 23:01:52 UTC

[jira] [Commented] (AVRO-1655) RecordSchema#fieldsToJson can throw NullPointerException

    [ 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)