[ https://issues.apache.org/jira/browse/THRIFT-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13844646#comment-13844646 ]
Jens Geyer edited comment on THRIFT-2285 at 12/10/13 8:43 PM: -------------------------------------------------------------- How about fixing the JSON readers *only* (all affected languages), so they are able to process both variants? The wire format would be left untouched. was (Author: jensg): How about fixing the JSON readers (all affected languages), so they are able to process both variants? > TJsonProtocol implementation for Java doesn't allow a slash (/) to be escaped > (\/) > ---------------------------------------------------------------------------------- > > Key: THRIFT-2285 > URL: https://issues.apache.org/jira/browse/THRIFT-2285 > Project: Thrift > Issue Type: Bug > Components: Java - Library, PHP - Library > Reporter: Alexander Steshenko > > We have PHP frontend and Java backend. Thrift is used for interaction between > the two, entities are serialized and deserialized using TJsonProtocol. > Whenever a string in a thrift entity contains a slash "/", PHP's > implementation, that uses {{json_encode}} under the hood, escapes it: > "Translation eng/rus" => "Translation eng\/rus". So the payload may look like > this: > {noformat} > {"1":{"str":"Translation rus\/eng"}} > {noformat} > (assuming that the entity only has this one string property) > Java cannot handle this input and fails with: > org.apache.thrift.protocol.TProtocolException: Expected control char > Java does not allow a slash to be escaped. > Thrift version is 0.9.1 > Any advice on what to do for a temporary solution? Should we fix Java side or > PHP side? > As per json.org, a slash CAN be escaped. To me it looks more like Java is not > standard compliant in this case. At the same time, however, I don't like the > ambiguity of the standard allowing both unescaped and escaped slash. -- This message was sent by Atlassian JIRA (v6.1.4#6159)