[
https://issues.apache.org/jira/browse/AVRO-1350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13696980#comment-13696980
]
Doug Cutting commented on AVRO-1350:
------------------------------------
Can you provide a complete, self-contained test case that illustrates the
problem? Thanks!
> Error in decoding enums using ResolvingDecoder
> ----------------------------------------------
>
> Key: AVRO-1350
> URL: https://issues.apache.org/jira/browse/AVRO-1350
> Project: Avro
> Issue Type: Bug
> Components: c++
> Affects Versions: 1.7.4
> Reporter: Bin Guo
>
> We can't get a correct result when decoding enums using resolving decoder.
> e.g.
> {code:title=An enum example}
> {"type":"enum","name":"Mode","symbols":["MEMORY","DISK"]}
> {code}
> We encoded "DISK"(1), then decoded with resolving decoder, got "MEMORY"(0).
> I examined the code and found that there is a sort after reading names of
> reader.
> I could't quite understand the author's intention, but it really can not work
> well.
> When decoding my enum, the return value is actually the *position of the
> sorted names*, and obviously it's not correct.
> {code:title=Symbol.cc}
> Symbol Symbol::enumAdjustSymbol(const NodePtr& writer, const NodePtr& reader)
> {
> vector<string> rs;
> size_t rc = reader->names();
> for (size_t i = 0; i < rc; ++i) {
> rs.push_back(reader->nameAt(i));
> }
> sort(rs.begin(), rs.end()); // the strange sort
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira