[ https://issues.apache.org/jira/browse/THRIFT-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13247202#comment-13247202 ]
Mars Hsu commented on THRIFT-1238: ---------------------------------- I think this issus still not fixed. Here is a example enum AutoAttribute { POWER = 0, MANIPULATE = 1, APPEARANCE = 2, DURABILITY = 3, } struct UserAutoDTO { 1: required string autoId, 2: required string autoName, 3: required string color, 4: required map<AutoAttribute, double> currentAttribute, } the client is scala(java), and service side is nodejs. [2012-04-05 08:02:41.547] [INFO] console - input.rstack: [2012-04-05 08:02:41.548] [INFO] console - undefined [2012-04-05 08:02:41.549] [INFO] console - input.rpos: [2012-04-05 08:02:41.549] [INFO] console - undefined /web/node_modules/thrift/lib/thrift/server.js:50 throw e; ^ TypeError: Cannot read property 'length' of undefined at Object.read (/web/gen-nodejs/auto_types.js:1670:29) > Thrift JS client cannot read map of structures > ---------------------------------------------- > > Key: THRIFT-1238 > URL: https://issues.apache.org/jira/browse/THRIFT-1238 > Project: Thrift > Issue Type: Bug > Components: JavaScript - Compiler, JavaScript - Library > Affects Versions: 0.6.1 > Reporter: Henrique Mendonca > Labels: javascript > Fix For: 0.8 > > Attachments: THRIFT-1238-fix-maps+qunit.patch, > THRIFT-1238-qunit-insanity.patch > > > Apparently we have a problem reading map of structures, only one item is been > read and the other come as undefined in the result map on the client side. > I was having this with some complex maps and notice that the test case > 'testInsanity' was quite similar to my case but was actually been tested at > all. Then checking its result I could see that's it actually a general > problem. > The server sends 2 elements: > {code} > { > "1":{ > "3":{ > "userMap":{ > "8":8, > "5":5 > }, > "xtructs":[{ > "string_thing":"Goodbye4", > "byte_thing":4, > "i32_thing":4, > "i64_thing":4 > }, > { > "string_thing":"Hello2", > "byte_thing":2, > "i32_thing":2, > "i64_thing":2 > } > ] > }, > "2":{ > "userMap":{ > "8":8, > "5":5 > }, > "xtructs":[{ > "string_thing":"Goodbye4", > "byte_thing":4, > "i32_thing":4, > "i64_thing":4 > }, > { > "string_thing":"Hello2", > "byte_thing":2, > "i32_thing":2, > "i64_thing":2 > } > ] > } > }, > "2":{ > "6":{ > "userMap":null, > "xtructs":null > } > } > } > {code} > but we can only read 1: > {code} > { > "1":{ > "2":{ > "userMap":{ > "8":8, > "5":5 > }, > "xtructs":[{ > "string_thing":"Goodbye4", > "byte_thing":4, > "i32_thing":4, > "i64_thing":4 > }, > { > "string_thing":"Hello2", > "byte_thing":2, > "i32_thing":2, > "i64_thing":2 > } > ] > }, > "undefined":{ > "userMap":null, > "xtructs":null > } > }, > "2":{ > "6":{ > "userMap":null, > "xtructs":null > } > } > } > {code} > on my code it also happens with 3 or more structures, only the first one is > read, the second is "undefined" and the rest is gone! > ps.: I'm submitting the patch for the unit test. I had a quick look on the > code but could find anything yet and won't have time in the next weeks... -- 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