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

Jens Geyer commented on THRIFT-4003:
------------------------------------

That implementation seems to be consensus across languages. On the other hand, 
I don't see any reason why uppercase should not be allowed. I just looked for 
the formal Definition of TJSONProtocol, but I was not able to locate it. 

> Is there a reason why hexVal() in TJSONProtocol.java throws exception when 
> uppercase alphabet is given?
> -------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-4003
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4003
>             Project: Thrift
>          Issue Type: Question
>          Components: Java - Compiler, Java - Library
>            Reporter: Chae Lee
>            Priority: Trivial
>
> Found out that passing unicode string "\uB300\uCE58" to Java server causes 
> "Expected hex character" in lib/java/src/protocol/TJSONProtocol.java:306.
> {code:title=TJSONProtocol.java|borderStyle=solid}
> // Convert a byte containing a hex char ('0'-'9' or 'a'-'f') into its
> // corresponding hex value
> private static final byte hexVal(byte ch) throws TException {
>     if ((ch >= '0') && (ch <= '9')) {
>         return (byte)((char)ch - '0');
>     }
>     else if ((ch >= 'a') && (ch <= 'f')) {
>         return (byte)((char)ch - 'a');
>     }
>     else {
>         throw new TProtocolException(TProtocolException.INVALID_DATA,
>                                     "Expected hex character");
>     }
> }{code}
> This is due to alphabet 'B' is not between '0' ~ '9' or 'a' ~ 'f'.
> Not that it's causing major issues or anything, just curious if the if~ else 
> conditionals are set like this for a reason.



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

Reply via email to