[ https://issues.apache.org/jira/browse/HBASE-8078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13600412#comment-13600412 ]
Andrew Purtell commented on HBASE-8078: --------------------------------------- Let me double check but I think this is a known problem. We use the Jersey JAXB bindings for JSON support: http://jersey.java.net/nonav/documentation/latest/json.html#json.jaxb.approach.section . These introduce some ordering requirements, that IIRC can change from version to version (of Jersey). The grand fix for JSON ordering issues is likely to be a move away from the JAXB bindings to a full JSON processor like Jackson. > REST for Multi-put Using JSON Ordering > -------------------------------------- > > Key: HBASE-8078 > URL: https://issues.apache.org/jira/browse/HBASE-8078 > Project: HBase > Issue Type: Bug > Components: REST > Reporter: Jesse Anderson > > This issue only happens when doing a Multi-put using the REST interface and > with the JSON data format. > The bug is that the "key" entry must come before the "Cell" entry. The "key" > entry order shouldn't matter. If it doesn't come first, the REST interface > won't find the key and will use the URL's key over and over. For example, if > the row key in the URL is "fakekey", then every cell would be added to the > same row despite the key being in the JSON. > Here is the workaround in Python: > cell = OrderedDict([ > ("key", rowKeyEncoded), > ("Cell", > [ > { "column" : messagecolumnencoded, "$" : line }, > { "column" : usernamecolumnencoded, "$" : > usernameEncoded }, > { "column" : linenumbercolumnencoded, "$" : > lineNumberEncoded }, > ]) > ]) -- 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