Lukas Steiblys created AVRO-1592:
------------------------------------

             Summary: Appended dollar sign at the end of an enum constant 
causes deserialization to fail.
                 Key: AVRO-1592
                 URL: https://issues.apache.org/jira/browse/AVRO-1592
             Project: Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.7.7
         Environment: CentOS, Java 1.7
            Reporter: Lukas Steiblys


The schema {"type": "enum", "name": "ButtonTypeID", "symbols": ["default", 
"keyboard"]} generates the following class:
 
public final class ButtonTypeID extends java.lang.Enum<ButtonTypeID> {
  public static final ButtonTypeID default$;
  public static final ButtonTypeID keyboard;
  public static final org.apache.avro.Schema SCHEMA$;
  public static ButtonTypeID[] values();
  public static ButtonTypeID valueOf(java.lang.String);
  public static org.apache.avro.Schema getClassSchema();
  static {};
}
 
(this is what “javap ButtonTypeID.class” produces)
 
When I try to read my data that has the “default” value for ButtonTypeID, I get 
the exception:
java.lang.IllegalArgumentException: No enum constant ButtonTypeID.default
        at java.lang.Enum.valueOf(Enum.java:236)
        at 
org.apache.avro.specific.SpecificData.createEnum(SpecificData.java:106)
        at 
org.apache.avro.generic.GenericDatumReader.createEnum(GenericDatumReader.java:205)...




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to