[ 
https://issues.apache.org/jira/browse/AVRO-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Le updated AVRO-2808:
--------------------------
    Issue Type: Improvement  (was: Bug)

> Java: ReflectData incorrectly handles hidden fields
> ---------------------------------------------------
>
>                 Key: AVRO-2808
>                 URL: https://issues.apache.org/jira/browse/AVRO-2808
>             Project: Apache Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.9.2
>            Reporter: Andy Le
>            Assignee: Andy Le
>            Priority: Major
>
> Hi guys,
> I've got the following test:
> {code:java}
> public ReflectTest{
>   public class Definition {
>     public Map<String, Type> tokens;
>   }
>   public enum Type {
>     A,
>     B,
>     C
>   }
>   @Test
>   public void testAvro2805() {
>     Schema schema = ReflectData.get().getSchema(Definition.class);
>     final String schemaString = schema.toString(true);
>     System.out.println(schemaString);
>   }
> }
> {code}
> When I ran the test, an exception is raised:
> {noformat}
> org.apache.avro.SchemaParseException: Illegal character in: this$0
>       at org.apache.avro.Schema.validateName(Schema.java:1530)
>       at org.apache.avro.Schema.access$400(Schema.java:87)
>       at org.apache.avro.Schema$Field.<init>(Schema.java:518)
>       at org.apache.avro.Schema$Field.<init>(Schema.java:557)
>       at 
> org.apache.avro.reflect.ReflectData.createSchema(ReflectData.java:683)
>       at 
> org.apache.avro.specific.SpecificData$3.computeValue(SpecificData.java:335)
>       at 
> org.apache.avro.specific.SpecificData$3.computeValue(SpecificData.java:332)
> {noformat}
> From the log, you may see that: we should not handle Java hidden field 
> `this$0` which is used to hold reference to outer class instances.
> This issue is somehow related to [this 
> one|https://issues.apache.org/jira/browse/AVRO-2805]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to