[ https://issues.apache.org/jira/browse/HELIX-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14070494#comment-14070494 ]
Kanak Biscuitwala commented on HELIX-476: ----------------------------------------- This is a duplicate of HELIX-292, which should already be in 0.6.3. In any case, 0.6.4 should be able to resolve this issue, and I have merged your pull request in pyhelix. > ZNRecordStreamingSerializer.deserialize throw NullPointerException when 'id' > property is not the first item in JSON > -------------------------------------------------------------------------------------------------------------------- > > Key: HELIX-476 > URL: https://issues.apache.org/jira/browse/HELIX-476 > Project: Apache Helix > Issue Type: Bug > Components: helix-core > Affects Versions: 0.6.3 > Reporter: Flier Lu > Priority: Minor > Fix For: 0.7.1 > > > ZNRecordStreamingSerializer.deserialize create ZNRecord when found 'id' > property, but if 'id' is not the first item in JSON (from python etc), the > record will be null and throw NullPointerException when parse another > property. > while (jp.nextToken() != JsonToken.END_OBJECT) { > String fieldname = jp.getCurrentName(); > jp.nextToken(); // move to value, or START_OBJECT/START_ARRAY > if ("id".equals(fieldname)) { > // contains an object > record = new ZNRecord(jp.getText()); // CREATE ZNRecord > } else if ("simpleFields".equals(fieldname)) { > while (jp.nextToken() != JsonToken.END_OBJECT) { > String key = jp.getCurrentName(); > jp.nextToken(); // move to value > record.setSimpleField(key, jp.getText()); // CRASH > } > we need cached those property before we meet the 'id' property -- This message was sent by Atlassian JIRA (v6.2#6252)