[
https://issues.apache.org/jira/browse/AVRO-997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13188896#comment-13188896
]
Scott Carey commented on AVRO-997:
----------------------------------
As a work-around, you may be able to wrap the Enum inside another record.
{code}
[
{
"type": "enum",
"name": "Gender",
"symbols": ["M", "F"]
},
{ "type": "record",
"name": "GenderWrapper",
"fields": [
{"name": "gender", "type":"Gender"}
]
},
{
"type" : "record",
"name" : "Foo",
"fields" : [
{ "type" : ["GenderWrapper", "null"], "name" : "gender" },
...
]
}
]
{code}
> Union of enum and null cannot be serialized
> -------------------------------------------
>
> Key: AVRO-997
> URL: https://issues.apache.org/jira/browse/AVRO-997
> Project: Avro
> Issue Type: Bug
> Affects Versions: 1.5.1
> Reporter: Aaron Kimball
>
> I have a schema like:
> {code}
> [
> {
> "type": "enum",
> "name": "Gender",
> "symbols": ["M", "F"]
> },
> {
> "type" : "record",
> "name" : "Foo",
> "fields" : [
> { "type" : ["Gender", "null"], "name" : "gender" },
> ...
> ]
> }
> ]
> {code}
> I build a record like {{Foo foo = new Foo(); foo.gender = Gender.M;}}
> When I go to serialize this, I get:
> {code}Not in union
> [{"type":"enum","name":"Gender","symbols":["M","F"]},"null"]: M
> at
> org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:482)
> at
> org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:70)
> at
> org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:104)
> at
> org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:65)
> at
> org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:57)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira