You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Andy Le (Jira)" <ji...@apache.org> on 2020/04/19 10:38:00 UTC

[jira] [Commented] (AVRO-2808) Java: ReflectData incorrectly handles hidden fields

    [ https://issues.apache.org/jira/browse/AVRO-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17086918#comment-17086918 ] 

Andy Le commented on AVRO-2808:
-------------------------------

[~cutting] [~sekikn] PATL

> Java: ReflectData incorrectly handles hidden fields
> ---------------------------------------------------
>
>                 Key: AVRO-2808
>                 URL: https://issues.apache.org/jira/browse/AVRO-2808
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.9.2
>            Reporter: 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)