George Fletcher created AVRO-1166:
-------------------------------------
Summary: IDL return type of map<record> fails in schema processing
Key: AVRO-1166
URL: https://issues.apache.org/jira/browse/AVRO-1166
Project: Avro
Issue Type: Bug
Components: java
Affects Versions: 1.7.1
Reporter: George Fletcher
An IDL construct such as ...
{code:title=Foo.idl}
protocol MyService {
record Bar {
int count;
string message;
}
map<Bar> getBars();
}
{code}
generates run-time errors because of this code in SpecificData.java
{code:title=SpecificData.java lines 189-196}
} else if (Map.class.isAssignableFrom(raw)) { // map
java.lang.reflect.Type key = params[0];
java.lang.reflect.Type value = params[1];
if (!(type instanceof Class
&& CharSequence.class.isAssignableFrom((Class)type)))
throw new AvroTypeException("Map key class not CharSequence: "+key);
return Schema.createMap(createSchema(value, names));
} else {
{code}
the issue is that CharSequence.class.isAssignableFrom((Class)type)) should
really be CharSequence.class.isAssignableFrom((Class)*key*))
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira