Updated Branches: refs/heads/master 2136694a2 -> f6acf4411
THRIFT-2303 TBufferredTransport not properly closing underlying transport Patch: Alex Ausch Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/f6acf441 Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/f6acf441 Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/f6acf441 Branch: refs/heads/master Commit: f6acf44117ebc96dff9eded7a836674be9924d84 Parents: 2136694 Author: Jens Geyer <[email protected]> Authored: Thu Jan 2 22:58:43 2014 +0100 Committer: Jens Geyer <[email protected]> Committed: Thu Jan 2 22:58:43 2014 +0100 ---------------------------------------------------------------------- lib/csharp/src/Transport/TBufferedTransport.cs | 22 +++++++++++++-------- lib/csharp/test/ThriftTest/TestClient.cs | 5 ++++- 2 files changed, 18 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/f6acf441/lib/csharp/src/Transport/TBufferedTransport.cs ---------------------------------------------------------------------- diff --git a/lib/csharp/src/Transport/TBufferedTransport.cs b/lib/csharp/src/Transport/TBufferedTransport.cs index 14b5db0..6cb0457 100644 --- a/lib/csharp/src/Transport/TBufferedTransport.cs +++ b/lib/csharp/src/Transport/TBufferedTransport.cs @@ -54,6 +54,18 @@ namespace Thrift.Transport } } + private void CloseBuffers() + { + if (inputBuffer != null && inputBuffer.CanRead) + { + inputBuffer.Close(); + } + if (outputBuffer != null && outputBuffer.CanWrite) + { + outputBuffer.Close(); + } + } + public TTransport UnderlyingTransport { get { return transport; } @@ -72,14 +84,8 @@ namespace Thrift.Transport public override void Close() { - if (inputBuffer != null && inputBuffer.CanRead) - { - inputBuffer.Close(); - } - if (outputBuffer != null && outputBuffer.CanWrite) - { - outputBuffer.Close(); - } + CloseBuffers(); + transport.Close(); } public override int Read(byte[] buf, int off, int len) http://git-wip-us.apache.org/repos/asf/thrift/blob/f6acf441/lib/csharp/test/ThriftTest/TestClient.cs ---------------------------------------------------------------------- diff --git a/lib/csharp/test/ThriftTest/TestClient.cs b/lib/csharp/test/ThriftTest/TestClient.cs index fe21f41..c7b81b4 100644 --- a/lib/csharp/test/ThriftTest/TestClient.cs +++ b/lib/csharp/test/ThriftTest/TestClient.cs @@ -99,7 +99,10 @@ namespace Test trans = new TBufferedTransport(trans as TStreamTransport); if (framed) trans = new TFramedTransport(trans); - + + //ensure proper open/close of transport + trans.Open(); + trans.Close(); t.Start(trans); } else
