[ https://issues.apache.org/jira/browse/THRIFT-3867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15424295#comment-15424295 ]
ASF GitHub Bot commented on THRIFT-3867: ---------------------------------------- Github user erikvanoosten commented on the issue: https://github.com/apache/thrift/pull/1036 @Jens-G wrote: > The Thrift compiler prevents the combination of oneway plus throws right from the start since March 2003, any types other than void are disallowed since THRIFT-2030. So that does not hold. I looked at it again. `ProcessFunction` in thrift 0.9.3 contains the following: ``` try { result = getResult(iface, args); } catch(TException tex) { LOGGER.error("Internal error processing " + getMethodName(), tex); TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, "Internal error processing " + getMethodName()); oprot.writeMessageBegin(new TMessage(getMethodName(), TMessageType.EXCEPTION, seqid)); x.write(oprot); oprot.writeMessageEnd(); oprot.getTransport().flush(); return; } ``` As you can see when `getResult` throws it is encoded regardless of oneway. You may ask when does `getResult` throw? Looking at the generated code, for example: ``` public getById_result getResult(I iface, getById_args args) throws org.apache.thrift.TException { getById_result result = new getById_result(); try { result.success = iface.getById(args.userId); } catch (UserNotFoundException exc1) { result.exc1 = exc1; } return result; } ``` it throws when it can not decode the request, or when the service implementation throws any unchecked exception. > Specify BinaryProtocol and CompactProtocol > ------------------------------------------ > > Key: THRIFT-3867 > URL: https://issues.apache.org/jira/browse/THRIFT-3867 > Project: Thrift > Issue Type: Documentation > Components: Documentation > Reporter: Erik van Oosten > > It would be nice when the protocol(s) would be specified somewhere. This > should improve communication between developers, but also opens the way for > alternative implementations so that Thrift can thrive even better. > I have a fairly complete description of the BinaryProtocol and > CompactProtocol which I will submit as a patch for further review and > discussion. -- This message was sent by Atlassian JIRA (v6.3.4#6332)