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)