Add missing writeEnd calls

Summary: When flush is called this also should be

Reviewed By: aditya

Test Plan: Use w/ PipedTransport. Should writeEnd() when an exception is thrown


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665261 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index 6de7452..7a31bc6 100644
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -1460,7 +1460,8 @@
       indent() << "args.write(oprot_);" << endl <<
       endl <<
       indent() << "oprot_->writeMessageEnd();" << endl <<
-      indent() << "oprot_->getTransport()->flush();" << endl;
+      indent() << "oprot_->getTransport()->flush();" << endl <<
+      indent() << "oprot_->getTransport()->writeEnd();" << endl;
 
     scope_down(f_service_);
     f_service_ << endl;
@@ -1672,6 +1673,7 @@
     indent() << "  x.write(oprot);" << endl <<
     indent() << "  oprot->writeMessageEnd();" << endl <<
     indent() << "  oprot->getTransport()->flush();" << endl <<
+    indent() << "  oprot->getTransport()->writeEnd();" << endl <<
     indent() << "  return true;" << endl <<
     indent() << "}" << endl <<
     endl <<
@@ -1702,6 +1704,7 @@
       indent() << "  x.write(oprot);" << endl <<
       indent() << "  oprot->writeMessageEnd();" << endl <<
       indent() << "  oprot->getTransport()->flush();" << endl <<
+      indent() << "  oprot->getTransport()->writeEnd();" << endl <<
       indent() << "  return true;" << endl;
   } else {
     f_service_ <<