Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-2064

Node thrift can't handle maps with primitive values

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Cannot Reproduce
    • Affects Version/s: 0.9
    • Fix Version/s: 0.9.2
    • Component/s: Node.js - Library
    • Labels:

      Description

      When passing a map with primitive values (i.e. boolean or integer) via the thrift-npm, I get the following error:

      ERROR:Object false has no method 'copy'

      The error is from the many copy() calls in thrift-npm: thrift/lib/thrift/transport.js

      transport.js calls copy() on primitive thrift function parameters (i.e. int and boolean).

      Example IDL:

      struct SetTeamPrivilegesParams {
      1: optional i32 teamId,
      2: optional string platform,
      3: optional string title,
      4: optional map<string,bool> privileges
      }

      /**

      • Sets the bit offsets in the Key Archive index for the various privileges sent by the client.
        **/
        SetTeamPrivilegesResponse setTeamPrivileges(1: SetTeamPrivilegesParams params) throws (1: ServiceException ex)

      Example Client Code (vars in 'values' are all boolean):

      var updateTeamParams = new ttypes.UpdateTeamParams({
      teamId: teamId,
      platform: platform,
      title: title,
      values:

      { 'canEditEmblem': false, 'isBanned': true }

      });

      var argsArray = [updateTeamParams];

      try

      { tc.call( 'setTeamPrivileges', argsArray, restResponse ); }

      catch(err)

      { console.log( "ERROR:" + err.message ) }

      ;

      ERROR:Object false has no method 'copy'

      Please fix transports.js to handle map parameters with primitives.

        Attachments

          Activity

            People

            • Assignee:
              codesf Randy Abernethy
              Reporter:
              sdrulea Sherban Drulea
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: