Revert "THRIFT-585 exceptions in the autogenerated send_METHOD functions are not propagated"
This reverts commit 8345772f299a308496ebaae6516f3f813469f829.
diff --git a/compiler/cpp/src/generate/t_py_generator.cc b/compiler/cpp/src/generate/t_py_generator.cc
index 25ee45f..5d23366 100644
--- a/compiler/cpp/src/generate/t_py_generator.cc
+++ b/compiler/cpp/src/generate/t_py_generator.cc
@@ -1279,23 +1279,19 @@
indent(f_service_) << "self._seqid += 1" << endl;
if (!(*f_iter)->is_oneway()) {
indent(f_service_) <<
- "self._reqs[self._seqid] = defer.Deferred()" << endl;
- indent(f_service_) <<
- "d = defer.maybeDeferred(self.send_" << funname << ",";
+ "d = self._reqs[self._seqid] = defer.Deferred()" << endl;
}
} else if (gen_tornado_) {
indent(f_service_) << "self._seqid += 1" << endl;
if (!(*f_iter)->is_oneway()) {
indent(f_service_) <<
"self._reqs[self._seqid] = callback" << endl;
- indent(f_service_) <<
- "self.send_" << funname << "(";
}
- } else {
- indent(f_service_) <<
- "self.send_" << funname << "(";
}
+ indent(f_service_) <<
+ "self.send_" << funname << "(";
+
bool first = true;
for (fld_iter = fields.begin(); fld_iter != fields.end(); ++fld_iter) {
if (first) {
@@ -1318,58 +1314,27 @@
f_service_ << ")" << endl;
if (!(*f_iter)->is_oneway()) {
-
+ f_service_ << indent();
if (gen_twisted_) {
- indent(f_service_) << "d.addCallbacks(self.cb_send_" << funname << "," << endl <<
- indent() << indent() << "errback=self.eb_send_" << funname << "," << endl <<
- indent() << indent() << "callbackArgs=(self._seqid,)," << endl <<
- indent() << indent() << "errbackArgs=(self._seqid,))" << endl;
- indent(f_service_) << "return d" << endl;
-
+ f_service_ << "return d" << endl;
} else if (gen_tornado_) {
- f_service_ << indent();
f_service_ << "self.recv_dispatch()" << endl;
} else {
- f_service_ << indent();
if (!(*f_iter)->get_returntype()->is_void()) {
f_service_ << "return ";
}
f_service_ <<
"self.recv_" << funname << "()" << endl;
}
+ } else {
+ if (gen_twisted_) {
+ f_service_ <<
+ indent() << "return defer.succeed(None)" << endl;
+ }
}
-
indent_down();
f_service_ << endl;
- if (gen_twisted_) {
- indent(f_service_) <<
- "def cb_send_" << funname << "(self, _, seqid):" << endl;
- indent_up();
- if ((*f_iter)->is_oneway()) {
- f_service_ <<
- indent() << "d = self._reqs.pop(seqid)" << endl <<
- indent() << "d.callback(None)" << endl;
- } else {
- f_service_ <<
- indent() << "d = self._reqs[seqid]" << endl;
- }
- f_service_ << indent() << "return d" << endl;
- indent_down();
-
- f_service_ << endl;
-
- indent(f_service_) <<
- "def eb_send_" << funname << "(self, e, seqid):" << endl;
- indent_up();
- f_service_ <<
- indent() << "d = self._reqs.pop(seqid)" << endl <<
- indent() << "d.errback(e)" << endl <<
- indent() << "return d" << endl;
- indent_down();
- f_service_ << endl;
- }
-
indent(f_service_) <<
"def send_" << function_signature(*f_iter, false, MANDATORY_FOR_ONEWAY_ELSE_NONE) << ":" << endl;
@@ -1402,7 +1367,7 @@
f_service_ <<
indent() << "args.write(oprot)" << endl <<
indent() << "oprot.writeMessageEnd()" << endl <<
- indent() << "return oprot.trans.flush()" << endl;
+ indent() << "oprot.trans.flush()" << endl;
} else if (gen_tornado_) {
f_service_ <<
indent() << "args.write(oprot)" << endl <<
diff --git a/lib/py/src/transport/TTwisted.py b/lib/py/src/transport/TTwisted.py
index 0e03f08..2b77414 100644
--- a/lib/py/src/transport/TTwisted.py
+++ b/lib/py/src/transport/TTwisted.py
@@ -42,7 +42,7 @@
def flush(self):
msg = self.__wbuf.getvalue()
self.__wbuf = StringIO()
- return defer.maybeDeferred(self.sendMessage, msg)
+ self.sendMessage(msg)
def sendMessage(self, message):
raise NotImplementedError
@@ -55,7 +55,7 @@
self.func = func
def sendMessage(self, message):
- return self.func(message)
+ self.func(message)
class ThriftClientProtocol(basic.Int32StringReceiver):