[
https://issues.apache.org/jira/browse/THRIFT-5260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jens Geyer resolved THRIFT-5260.
--------------------------------
Fix Version/s: 0.14.0
Resolution: Fixed
> Fix the thrift compiler generate problematic lua code for the oneway method
> ---------------------------------------------------------------------------
>
> Key: THRIFT-5260
> URL: https://issues.apache.org/jira/browse/THRIFT-5260
> Project: Thrift
> Issue Type: Bug
> Components: Lua - Compiler
> Affects Versions: 0.13.0
> Reporter: zero
> Assignee: zero
> Priority: Major
> Fix For: 0.14.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The oneway method 'testOneway' in file 'test/ThriftTest.thrift', for
> instance, generated code in file 'test/lua/gen-lua/ThriftTest_ThriftTest.lua'
> as follows:
> function ThriftTestProcessor:process_testOneway(seqid, iprot, oprot,
> server_ctx)
> local args = testOneway_args:new{}
> local reply_type = TMessageType.REPLY
> args:read(iprot)
> iprot:readMessageEnd()
> local result = testOneway_result:new{}
> local status, res = pcall(self.handler.testOneway, self.handler,
> args.secondsToSleep)
> if not status then
> reply_type = TMessageType.EXCEPTION
> result = TApplicationException:new
> {message = res}
> else
> result.success = res
> end
> oprot:writeMessageBegin('testOneway', reply_type, seqid)
> result:write(oprot)
> oprot:writeMessageEnd()
> oprot.trans:flush()
> end
> The 'testOneway_result' is undefined and I think it is wrong to write the
> 'result' to the 'oprot' since it is nil, but at the same time it is necessary
> for every process functions to return values from each handler's return.
>
> [I have created a pull request here:
> https://github.com/apache/thrift/pull/2212|https://github.com/apache/thrift/pull/2212]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)