[
https://issues.apache.org/jira/browse/AVRO-1703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thiruvalluvan M. G. updated AVRO-1703:
--------------------------------------
Component/s: java
> 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: Apache Avro
> Issue Type: Improvement
> Components: java
> Reporter: Marius Soutier
> Priority: Major
> Labels: starter
>
> 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
(v7.6.3#76005)