Yu Gan created THRIFT-4852:
------------------------------
Summary: The recv functions of void function don't throw custom
exceptions
Key: THRIFT-4852
URL: https://issues.apache.org/jira/browse/THRIFT-4852
Project: Thrift
Issue Type: Bug
Components: Lua - Compiler
Affects Versions: 0.12.0
Reporter: Yu Gan
In thrift/compiler/cpp/src/thrift/generate/t_lua_generator.cc:621, it only
throws custom exceptions when the function is not void. However, void function
could still return exceptions to the caller service, as long as the function is
not oneway.
{code}
// Return the result if it's not a void function
if (!(*f_iter)->get_returntype()->is_void()) {
out << indent() << "if result.success ~= nil then" << endl << indent()
<< " return result.success"
<< endl;
// Throw custom exceptions
const std::vector<t_field*>& xf =
(*f_iter)->get_xceptions()->get_members();
vector<t_field*>::const_iterator x_iter;
for (x_iter = xf.begin(); x_iter != xf.end(); ++x_iter) {
out << indent() << "elseif result." << (*x_iter)->get_name() << "
then" << endl
<< indent() << " error(result." << (*x_iter)->get_name() << ")"
<< endl;
}
out << indent() << "end" << endl << indent()
<< "error(TApplicationException:new{errorCode = "
<< "TApplicationException.MISSING_RESULT})" << endl;
}
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)