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