[
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