[ https://issues.apache.org/jira/browse/THRIFT-4082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15862218#comment-15862218 ]
Benjamin Gould commented on THRIFT-4082: ---------------------------------------- I used a Java server with browser Javascript all the time, with no issues. You might be right about the code in a try/catch for ProcessFunction.process()... if there is code being generated there and it doesn't have readStructEnd() that would be a problem. You are also correct about this not being an issue for the binary protocol; for that protocol readStructEnd() is a no-op function: https://github.com/apache/thrift/blob/e1832c354391deb0e0ce94a62ff32e8ce1c83fd3/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java#L246 IIRC in the Thrift whitepaper it explicitly says readStructEnd() was not strictly necessary to add to the Thrift semantics (because they included a STOP field) but it was included anyways to facilitate things like JSON and XML that have both initiating and terminating delimiters for their structures. It is also possible this is not covered by the Thrift test suite... there is a phantomjs test runner for the javascript library but it doesn't look like there is an HTTP transport for Java in tests.json so I presume this combination does not get tested. However I would sort of expect that some test combination does end up testing the JSON protocol with Java so if there is a bug in the Java implementation here, I think it is possible that this is an edge case for which there is not test coverage. > Java library can't parse JSON generated by javascript TJSONProtocol > ------------------------------------------------------------------- > > Key: THRIFT-4082 > URL: https://issues.apache.org/jira/browse/THRIFT-4082 > Project: Thrift > Issue Type: Bug > Components: Java - Compiler > Affects Versions: 0.10.0 > Reporter: Christopher Wright > Priority: Critical > > Thrift definition: > struct Entity { > 1: string id; > } > service EntityService { > void save(1: Entity entity); > } > JSON document: [1,"save",1,0,{"1":{"rec":{"1":{"str":"q19786052"}}}}] > Error: > org.apache.thrift.protocol.TProtocolException: Unexpected character:} > (Additionally, the parser would ideally state where it found the unexpected > character.) -- This message was sent by Atlassian JIRA (v6.3.15#6346)