The java TestClient asks the server to runa oneway request that
sleeps for 3 seconds. If the java TestClient sees the duration
of the call exceed one second, it fails the test. This means the
server did not participate in the "fire and forget" dynamics of
ONEWAY requests. In this case the THttpServer was processing the
RPC before sending the transport response. The fix was to enhance
the TProcessor so that the THttpServer has an opportunity to inspect
the message header before processing the RPC.
This is partly due to the violation of the THttpServer in the
layered architecture. It is essentially implementing a combined
server and transport, whereas there should be a distinct server,
protocol, and transport separation. Many languages seem to have
this problem where HTTP was introduced.
* use override
* use make_shared
* use emplace
* use range for
* fix error on MSVC
* replace boost functions with std functions
* fix static analyzer warnings
* check api return value
* initialize member
* check the return value of SSL_peek > 0
* add override
* HTML: the html generator did generate a closing </code> tag without a match <code>
* THRIFT-4763: added HTML test and fixed up additional HTML generation issues
* make use of C++11 override keyword
* added const specifier to TTransport::getOrigin()
* added more const correctness to the compiler
* make use of auto keyword
* replaced usage of NULL with nullptr
* make use of explicitly-defaulted function definition
* extended changelog
* THRIFT-4654 Minor fixes for dart 1 & 2 compatibility
* update dockerfiles for CI to test dart 2
* THRIFT-4654 update pubspec for tests
* THRIFT-4654 update dart test generator and readme to 1.24.3
* THRIFT-4654 update generated dart sdk to a range
* fix the dart tutorials
* Add .dart_tool directories to .gitignore
* THRIFT-4654: use dart 2.1.0 and fix cross test dart client timeout
Client: C#
Complete the namespace in System.ServiceModel in WCF related code.
Also when generating fields in fault classes, we follow the same behavior in normal struct,
to avoid generating unused private fields, when auto properties are also generated.
For a void method, there is no success value, so, it is an error to
attempt to assign one to the result object. This error is harmless
unless slots is also specified - with slots specified, the attempt to
assign to a non-existent field causes an error which makes the service
method fail.
Client: py
This commit also fixes another, related issue: Since union support was
added in b3654df, `Count*` methods (and count checks in `Write`
methods) were only generated if there was at least 1 pointer field.
But pointer fields are not the only nullable types in Go, slices and
maps can also be set the nil, which are now taken into account.
Client: go
Client: erl
The Thrift Erlang code generator previously generated fields with the
`#{}` Erlang type for maps fields. In the Erlang type specification
languages, however, `#{}` specifically means an empty map. This commit
fixes the code to emit `map()` instead, which means the maps keys and
values may be of any type.
It would be possible to emit a field type such as
`${keytype() => maptype()}`, but this commit does not do that.
This closes#1495
Client: erl
As of Erlang 19, the dialyzer static type-analysis tool no longer
implicitly adds `undefined` to the allowed types for a field. This
means that dialyzer will now complain about any non-required fields
that are not explicitly initialed when creating a new record.
This closes#1494
golang: don't generate -remote.go clients when there are no functions
golang: support for http headers in -remote clients
golang: serialize cli requests with TJsonProtocol since serialization is not supported with TSimpleJsonProtocol
Client: golang
This closes#1488
Client: php
* PHP ident with 4 space
* remove redundancy blank lines
* open bracket of function, class at new line
* remove hard-coded indent, use indent()
* add necessary visibility declaration for class field
* open bracket of flow control put end of line, not new line
* remove inline control structures
* add blank around equal symbol
This closes#1473
Client: go
Assign parsedUrl to the variable in the outer scope instead of creating
a new one. Previously the outer parsedUrl was never assigned and was
therefore always empty.
This closes#1411
This change removes a lot of duplication from generated code and allows
the caller to customize how they can read from / write to the
transport. Backwards compatible adapters make the change compatible
with existing code in use by consuming applications.
Client: Go
This closes#1382
1458947: memory leak in compiler
1458787: resource leak in c_glib led to discovery of assert() abuse
1459090: fix string.find result check in JSON processor (unlikely)
This closes#1404
NOTE: drops php5 support for PHP extension (thrift_protocol)
however library still can support PHP5 as evidenced by CI build
Client: php
This closes#1385
This closes#1391