Marius Soutier created AVRO-1703:
------------------------------------
Summary: Specific record should not only be determined by presence
of SCHEMA$ field
Key: AVRO-1703
URL: https://issues.apache.org/jira/browse/AVRO-1703
Project: Avro
Issue Type: Improvement
Reporter: Marius Soutier
I want to use Avro from Scala, i.e. generate case classes from an Avro schema.
So far this is working fine except for one thing - fields in Scala classes are
always private. This doesn't work with Avro SpecificRecords (at least when
inferring the schema from the class) and results in the following exception:
org.apache.avro.AvroRuntimeException: java.lang.IllegalAccessException: Class
org.apache.avro.specific.SpecificData can not access a member of class
<my.Class> with modifiers "private"
The exception is thrown from the following line in
org.apache.avro.specific.SpecificData:
schema = (Schema)(c.getDeclaredField("SCHEMA$").get(null));
My suggestion would be to additionally check for a method called `getSchema`
and read the schema from that method.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)