[
https://issues.apache.org/jira/browse/AVRO-90?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743537#action_12743537
]
Thiruvalluvan M. G. commented on AVRO-90:
-----------------------------------------
Some little code can be saved in JsonDecoder.readIndex():
{code:title=JsonDecoder.java}
public int readIndex() throws IOException {
parser.advance(Symbol.UNION);
Symbol.Alternative a = (Symbol.Alternative) parser.popSymbol();
String label;
if (in.getCurrentToken() == JsonToken.VALUE_NULL) {
label = "null";
} else if (in.getCurrentToken() == JsonToken.START_OBJECT &&
in.nextToken() == JsonToken.FIELD_NAME) {
label = in.getText();
in.nextToken();
parser.pushSymbol(Symbol.UNION_END);
} else {
throw error("start-union");
}
int n = a.findLabel(label);
if (n < 0)
throw new AvroTypeException("Unknown union branch " + label);
parser.pushSymbol(a.getSymbol(n));
return n;
}
{code}
> json encoding does not encode unions correctly
> ----------------------------------------------
>
> Key: AVRO-90
> URL: https://issues.apache.org/jira/browse/AVRO-90
> Project: Avro
> Issue Type: Bug
> Components: java
> Affects Versions: 1.0.1
> Reporter: Doug Cutting
> Assignee: Doug Cutting
> Attachments: AVRO-90.patch
>
>
> The Json encoding implemented in Java does not encode unions as intended. In
> particular:
> - branches are labeled with their Java type enum name (all caps) rather
> than their Json type name (lowercase)
> - branches for named types (records, enums, fixed) are labeled with the
> type rather than the name
> - nulls are labelled -- a null value for a union should be untagged
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.