THRIFT-637. python: Fix mixing of oneway and regular requests in TNonblockingServer
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@886646 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/py/src/server/TNonblockingServer.py b/lib/py/src/server/TNonblockingServer.py
index deec708..ea348a0 100644
--- a/lib/py/src/server/TNonblockingServer.py
+++ b/lib/py/src/server/TNonblockingServer.py
@@ -178,11 +178,12 @@
self.wake_up()
return
self.len = ''
- self.message = struct.pack('!i', len(message)) + message
if len(message) == 0:
# it was a oneway request, do not write answer
+ self.message = ''
self.status = WAIT_LEN
else:
+ self.message = struct.pack('!i', len(message)) + message
self.status = SEND_ANSWER
self.wake_up()
diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index 64e5e87..0a38b03 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -129,6 +129,10 @@
end = time.time()
self.assertTrue(end - start < 0.2,
"oneway sleep took %f sec" % (end - start))
+
+ def testOnewayThenNormal(self):
+ self.client.testOneway(0.5)
+ self.assertEqual(self.client.testString('Python'), 'Python')
class NormalBinaryTest(AbstractTest):
protocol_factory = TBinaryProtocol.TBinaryProtocolFactory()