[ 
https://issues.apache.org/jira/browse/THRIFT-3302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14729656#comment-14729656
 ] 

Jens Geyer commented on THRIFT-3302:
------------------------------------

Why don't we change the {{WriteByte(byte)}} methods into {{WriteByte(int8)}} 
while we're at it? All Thrift integers are [always signed by 
definition](https://thrift.apache.org/docs/types).

> Go JSON protocol should encode Thrift byte type as signed integer string
> ------------------------------------------------------------------------
>
>                 Key: THRIFT-3302
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3302
>             Project: Thrift
>          Issue Type: Bug
>          Components: Go - Library
>            Reporter: Nobuaki Sukegawa
>            Assignee: Nobuaki Sukegawa
>
> h3. 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.
> h3. 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.
> h3. Fix
> Explicitly convert the unsigned 8-bit value back to signed one in JSON 
> protocols before converting to text.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to