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()