zero created THRIFT-5260:
----------------------------

             Summary: 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


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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to