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

[jira] [Created] (AVRO-2956) SpecificRecord decoding fails if Java keyword is used as record name

Richard Fussenegger created AVRO-2956:
-----------------------------------------

             Summary: SpecificRecord decoding fails if Java keyword is used as record name
                 Key: AVRO-2956
                 URL: https://issues.apache.org/jira/browse/AVRO-2956
             Project: Apache Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.10.0
            Reporter: Richard Fussenegger


Someone created an Avro definition where the name of a record is {{case}}:

{code:none}
protocol Proto {
    record case {
        string value;
    }

    record Wrapper {
        case inner;
    }
}
{code}

Code generation works and the generated Java code uses {{case$}} for the class name of the record. There is no problem in writing the Java code itself, however, decoding with a {{SpecificRecord.getDecoder()}} fails with a {{ClassCastException}}:

{code:none}
class org.apache.avro.generic.GenericData$Record cannot be cast to class case$ (org.apache.avro.generic.GenericData$Record and case$ are in unnamed module of loader 'app')
java.lang.ClassCastException: class org.apache.avro.generic.GenericData$Record cannot be cast to class case$ (org.apache.avro.generic.GenericData$Record and case$ are in unnamed module of loader 'app')
{code}



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