Nobuaki Sukegawa created THRIFT-3361:
----------------------------------------

             Summary: Improve C# library
                 Key: THRIFT-3361
                 URL: https://issues.apache.org/jira/browse/THRIFT-3361
             Project: Thrift
          Issue Type: Improvement
          Components: C# - Compiler, C# - Library, Test Suite
            Reporter: Nobuaki Sukegawa


h3. Server exception handling

Servers didn't propagate exceptions in handler code to the client.

Same as THRIFT-3349 (python) and THRIFT-3335 (ruby)

h3. TBufferedTransport

System.IO.BufferedStream inside this transport made it strongly tied to 
underlying transport's stream state.
More concretely, when used on top of TTLSSocket it crashed because underlying 
SslStream is disposed by the socket while BufferedStream kept trying to touch 
the disposed stream after that.

So I removed BufferedStream and made it use System.IO.MemoryBuffer instead.

* Can now work on top of TTLSSocket
* Underlying transport no longer needs to be a TStreamTransport

h3. TFramedTransport

It was allocating new MemoryBuffer for nealy every write and read of frames.
I made it allocate only once.

h3. JSONProtocol

* Can now handle Base64 with padding for binary fields (Fixes C# part of 
THRIFT-3359)

h3. TTLSSocket

* Make client certificate optional

h3. Test

With this patch applied, all the cross test apps should be mostly valid.

* Fix SSL setup
* Semantic return code
* Add testException and testMultiException
* Add missing assertions



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to