avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marius Soutier (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AVRO-1703) Specific record should not only be determined by presence of SCHEMA$ field
Date Mon, 13 Jul 2015 15:20:04 GMT
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)

Mime
View raw message