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

Go JSON protocol should encode Thrift byte type as signed integer string

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.3
    • Component/s: Go - Library
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      Problem

      Go implementation of JSON and simple JSON protocols encode Thrift byte type field as unsigned 8bit integer.

      i.e. -1 is encoded to "255" by Go implementation while "-1" by others like C++, Java and Python.

      Reproduce

      Cross test with go server and py client (JSON protocols of course).
      (like "expected -127 but got 129")

      Static-typed clients (such as C++ and Java) are not likely to notice the difference because of integer overflow.

      Fix

      Explicitly convert the unsigned 8-bit value back to signed one in JSON protocols before converting to text.

        Attachments

          Activity

            People

            • Assignee:
              nsuke Nobuaki Sukegawa
              Reporter:
              nsuke Nobuaki Sukegawa
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: