[
https://issues.apache.org/jira/browse/AVRO-759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Doug Cutting updated AVRO-759:
------------------------------
Fix Version/s: 1.5.0
Assignee: Doug Cutting
Status: Patch Available (was: Open)
I will commit this bugfix soon unless there are objections.
> Field alias not working due to Schema.getFieldAlias return null for fields
> not aliased
> --------------------------------------------------------------------------------------
>
> Key: AVRO-759
> URL: https://issues.apache.org/jira/browse/AVRO-759
> Project: Avro
> Issue Type: Bug
> Components: java
> Affects Versions: 1.4.1
> Reporter: Xiaolu Ye
> Assignee: Doug Cutting
> Fix For: 1.5.0
>
> Attachments: AVRO-759.patch, AvroAliasTest.java, aliased-reader.avpr,
> reader.avpr
>
>
> When field alias is used, I get NullPointerException in
> Schema.Field.hashCode() because Field.name is null. This is because
> Schema.getFieldAlias return null for non-aliased field. Currently the code is
> as below:
> private static String getFieldAlias(Name record, String field,
> Map<Name, Map<String, String>> fieldAliases) {
> Map<String, String> recordAliases = fieldAliases.get(record);
> if(recordAliases == null) {
> return field;
> }
> return recordAliases.get(field);
> }
> Given recordAliases only has aliases, it should return field itself if it's
> not in recordAliases as below:
> private static String getFieldAlias(Name record, String field,
> Map<Name, Map<String, String>> fieldAliases) {
> Map<String, String> recordAliases = fieldAliases.get(record);
> if(recordAliases == null) {
> return field;
> }
> String ret = recordAliases.get(field);
> if (ret == null) ret = field;
> return ret;
> }
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira