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)