blob: 4b4997ef36875b77f8211c84c7159df25aa6f00a [file] [log] [blame]
Mustafa Senol Cosarf86845e2018-12-05 17:50:18 +03001Apache Thrift Changelog
2
3================================================================================
4Thrift 0.13.0
5--------------------------------------------------------------------------------
6## Breaking Changes (since 0.12.0)
7 * [THRIFT-4675] - Javascript now uses node-int64 for 64 bit integer constants
8
9================================================================================
10Thrift 0.12.0
11--------------------------------------------------------------------------------
12## New Languages
13 * Common LISP (cl)
14 * Swift
15 * Typescript (nodets)
16
17## Deprecated Languages
18 * Cocoa
19
20## Breaking Changes (since 0.11.0)
21 * [THRIFT-4529] - Rust enum variants are now camel-cased instead of uppercased to conform to Rust naming conventions
22 * [THRIFT-4448] - Support for golang 1.6 and earlier has been dropped.
23 * [THRIFT-4474] - PHP now uses the PSR-4 loader by default instead of class maps.
24 * [THRIFT-4532] - method signatures changed in the compiler's t_oop_generator.
25 * [THRIFT-4648] - The C (GLib) compiler's handling of namespaces has been improved.
26
27## Known Issues (Blocker or Critical)
28 * [THRIFT-4037] - build: use a single build system for thrift
29 * [THRIFT-4119] - build: bootstrap.sh is missing from source tarball
30 * [THRIFT-3289] - csharp: socket exhaustion in csharp implementation
31 * [THRIFT-3029] - cocoa: Getters for fields defined with uppercase names do not work
32 * [THRIFT-3325] - cocoa: Extended services aren't subclasses in generated Cocoa
33 * [THRIFT-4116] - cocoa: Thrift de-capitalizes the name of IsSet property in Cocoa
34 * [THRIFT-3877] - cpp: the http implementation is not standard; interop with other languages is spotty at best
35 * [THRIFT-4180] - cpp: Impossible to build Thrift C++ library for Android (NDK)
36 * [THRIFT-4384] - cpp: Using multiple async services simultaneously is not thread-safe
37 * [THRIFT-3108] - haskell: Defaulted struct parameters on a service generates invalid Haskell
38 * [THRIFT-3990] - nodejs: Exception swallowed by deserialization function
39 * [THRIFT-4214] - nodejs: map<i64,value> key treated as hex value in JavaScript
40 * [THRIFT-4602] - nodejs: ERROR in ./node_modules/thrift/lib/nodejs/lib/thrift/connection.js Module not found: Error: Can't resolve 'child_process'
41 * [THRIFT-4639] - nodejs: Sequence numbering for multiplexed protocol broken
42 * [THRIFT-1310] - php: sequence and reconnection management issues
43 * [THRIFT-1538] - php: Error during deserialization int64 on 32-bit architecture
44 * [THRIFT-1580] - php: thrift type i64 java to php serialize/deserealize not working
45 * [THRIFT-1950] - php: PHP gets stuck in infinite loop
46 * [THRIFT-2954] - python: sending int or float in a double field breaks the connection
47 * [THRIFT-4080] - python: unix sockets can get stuck forever
48 * [THRIFT-4281] - python: generated code is out of order and causes load issues
49 * [THRIFT-4677] - py3: UnicodeDecideError in Python3
50
51## Build Process
52 * [THRIFT-4067] - Windows thrift compiler distributed on the apache web site has runtime dependencies
53 * [THRIFT-4308] - D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang
54 * [THRIFT-4579] - Use Ubuntu Bionic (18.04 LTS) for CI builds instead of Artful (17.10)
55 * [THRIFT-4508] - Define CI operating system coverage rules for the project and (hopefully) simplify CI a little more
56 * [THRIFT-4397] - ubuntu install instructions broken on 16.04
57 * [THRIFT-4545] - Appveyor builds are failing due to a haskell / cabal update in chocolatey
58 * [THRIFT-4452] - optimize Dockerfile (only onetime apt-get update)
59 * [THRIFT-4440] - rm `build/docker/ubuntu-trusty/Dockerfile.orig`
60 * [THRIFT-4352] - Ubuntu Artful doesn't appear to be compatible with Thrift and Haxe 3.4.2
61 * [THRIFT-4666] - DLang Client Pool Test fails sporadically
62 * [THRIFT-4676] - CL tutorial build fails sporadically
63 * [THRIFT-4456] - Make haxelib download quiet so it doesn't blow up the build log
64 * [THRIFT-4605] - bootstrap.sh fails if automake=1.16.1
65
66## c_glib
67 * [THRIFT-4648] - The C (GLib) compiler's handling of namespaces has been improved.
68 * [THRIFT-4622] - glibC compilation issue
69 * [THRIFT-4671] - c glib is unable to handle client close unexpectedly
70
71## cl (new language support in 0.12.0)
72 * [THRIFT-82] - Common Lisp support
73
74## csharp
75 * [THRIFT-4558] - reserved Csharp keywords are not escaped in some cases
76 * [THRIFT-4637] - C# async mode generates incorrect code with inherited services
77 * [THRIFT-4672] - IAsyncResult style methods not being supported by certain transports leads to issues in mixed ISync/IAsync use cases
78 * [THRIFT-4539] - Allow TBufferedTransport to be used as base class
79 * [THRIFT-4535] - XML docs; code cleanup (tabs->spaces; String->string)
80 * [THRIFT-4492] - protected ExceptionType type member of TApplicationException cannot be accessed
81 * [THRIFT-4446] - JSONProtocol Base64 Encoding Trims Padding
82 * [THRIFT-4455] - Missing dispose calls in ThreadedServer & ThreadpoolServer
83 * [THRIFT-4609] - keep InnerException wherever appropriate
84 * [THRIFT-4673] - IAsyncResult not supported by layered transports (buffered/framed)
85
86## cpp
87 * [THRIFT-4476] - Typecasting problem on list items
88 * [THRIFT-4465] - TNonblockingServer throwing THRIFT LOGGER: TConnection::workSocket(): THRIFT_EAGAIN (unavailable resources)
89 * [THRIFT-4680] - TBufferTransports.h does not compile under Visual Studio 2017
90 * [THRIFT-4618] - TNonblockingServer crash because of limitation of select()
91 * [THRIFT-4620] - TZlibTransport.cpp doesn't ensure that there is enough space for the zlib flush marker in the buffer.
92 * [THRIFT-4571] - ZeroMQ contrib library needs a refresh
93 * [THRIFT-4559] - TSSLServerSocket incorrectly prints errors
94 * [THRIFT-4578] - Move `TAsyncProtocolProcessor` into main thrift library
95 * [THRIFT-4418] - evhttp_connection_new is deprecated; use evhttp_connection_base_new
96
97## compiler
98 * [THRIFT-4644] - Compiler cannot be compiled on macOS(maybe also on other platforms with clang)
99 * [THRIFT-4531] - Thrift generates wrong Python code for immutable structures with optional members
100 * [THRIFT-4513] - thrift generated code is not stable for constants
101 * [THRIFT-4532] - Avoid updating Thrift compiler generated code if the output has not changed
102 * [THRIFT-4400] - Visual Studio Compiler project should link runtime statically in release builds
103 * [THRIFT-4399] - plugin.thrift t_const_value is not used as a union in C++ code -- fix this
104 * [THRIFT-4496] - Dealing with language keywords in Thrift (e.g. service method names)
105 * [THRIFT-4393] - repeated runs of compiler produce different binary output at plugin interface
106
107## dlang
108 * [THRIFT-4478] - Thrift will not build with dlang 2.078 or later
109 * [THRIFT-4503] - dlang servers logError on normal client disconnection
110 * [THRIFT-4308] - D language docker images need demios for libevent and openssl fixed to re-enable make cross on dlang
111
112## dart
113 * [THRIFT-4646] - Effective Dart and Exceptions
114 * [THRIFT-4439] - Shouldn't download dart.deb directly.
115
116## delphi
117 * [THRIFT-4562] - Calling wrong exception CTOR leads to "call failed: unknown result" instead of the real exception being thrown
118 * [THRIFT-4554] - uncompileable code with member names that are also types under specific conditions
119 * [THRIFT-4422] - Add Async implementation via IFuture
120 * [THRIFT-4485] - Possible invalid ptr AV with overlapped read/write on pipes
121 * [THRIFT-4549] - Thrift exceptions should derive from TException
122 * [THRIFT-4540] - buffered transport broken when trying to re-open a formerly closed transport
123 * [THRIFT-4473] - Move Thrift.Console.pas out of the Library
124 * [THRIFT-4490] - Allow a default service as fallback for multiplex processors connected by old clients
125 * [THRIFT-4454] - Large writes/reads may cause range check errors in debug mode
126 * [THRIFT-4461] - Compiler directive should match Delphi XE4
127 * [THRIFT-4462] - First line in Console duplicated
128 * [THRIFT-4642] - FPU ctrl word settings may cause an unexpected "denormalized" error
129 * [THRIFT-4589] - HTTP client timeouts are a) incomplete and b) not used at all
130 * [THRIFT-4590] - running the test client using HTTP transport leads to "CoInitialize not called"
131
132## erlang
133 * [THRIFT-4497] - Erlang records should use map() for map type
134 * [THRIFT-4495] - Erlang records should allow 'undefined' for non-required fields
135 * [THRIFT-4580] - Fix erlang tutorial unpack on Windows
136 * [THRIFT-4582] - Ubuntu Xenial erlang 18.3 "make check" fails
137
138## golang
139 * [THRIFT-4448] - Support for golang 1.6 and earlier has been dropped.
140 * [THRIFT-4253] - Go generator assigns strings to field in const instead of pointers.
141 * [THRIFT-4573] - Unions Field Count Does Not Consider Binary
142 * [THRIFT-4447] - Golang: Panic on p.c.Call when using deprecated initializers
143 * [THRIFT-4650] - Required field incorrectly marked as set when fieldType does not match
144 * [THRIFT-4486] - Golang: -remote.go client cleanup
145 * [THRIFT-4537] - TSimpleServer can exit Accept loop with lock still acquired
146 * [THRIFT-4516] - Add support for go 1.10
147 * [THRIFT-4421] - golang tests rely on gomock, which has change behaviour, causing tests to fail
148 * [THRIFT-4626] - Communication crash when using binary/compact protocol and zlib transport
149 * [THRIFT-4659] - golang race detected when closing listener socket
150
151## haskell
152 * [THRIFT-4634] - Haskell builds with older cabal cannot reconcile complex version requirements
153
154## java
155 * [THRIFT-4259] - Thrift does not compile due to Ant Maven task errors
156 * [THRIFT-1418] - Compiling Thrift from source: Class org.apache.tools.ant.taskdefs.ConditionTask doesn't support the nested "typefound" element
157 * [THRIFT-4530] - proposal: add nullability annotations to generated Java code
158 * [THRIFT-4614] - Generate missing @Nullable annotations for Java iterator getters
159 * [THRIFT-4555] - Getter of binary field in Java creates unnecessary copy
160 * [THRIFT-3983] - libthrift is deployed on central with pom packaging instead of jar
161 * [THRIFT-4294] - Java Configure Fails for Ant >= 1.10
162 * [THRIFT-4178] - Java libraries missing from package when using cmake
163 * [THRIFT-4120] - pom files are not generated or provided in the build
164 * [THRIFT-1507] - Maven can't download resource from central when behind a proxy and won't use local repository
165 * [THRIFT-4556] - Optional rethrow of unhandled exceptions in java processor
166 * [THRIFT-4337] - Able to set keyStore and trustStore as InputStream in the TSSLTransportFactory.TSSLTransportParameters
167 * [THRIFT-4566] - Pass message of unhandled exception to optional rethrow.
168 * [THRIFT-4506] - Remove assertion in Java SASL code that would be ignored in release builds
169 * [THRIFT-4470] - Include popular IDE file templates to gitignore
170 * [THRIFT-4429] - Make TThreadPoolServer.executorService_ available in inherited classes and refactor methods to be able customization
171 * [THRIFT-3769] - Fix logic of THRIFT-2268
172 * [THRIFT-4494] - Increase Java Socket Buffer Size
173 * [THRIFT-4499] - Remove Magic Number In TFIleTransport
174
175## js
176 * [THRIFT-4406] - JavaScript: Use modern Promise implementations
177 * [THRIFT-4625] - let / const variable decorators for es6 compiler
178 * [THRIFT-4653] - ES6 Classes
179 * [THRIFT-4592] - JS: readI32 performance on large arrays is very poor in Chrome
180 * [THRIFT-4509] - js and nodejs libraries need to be refreshed with current libraries
181 * [THRIFT-4403] - thrift.js: Incorrect usage of 'this' in TWebSocketTransport.__onOpen
182 * [THRIFT-4436] - Deserialization of nested list discards content
183 * [THRIFT-4437] - JS WebSocket client callbacks invoked twice on parallel requests
184 * [THRIFT-4679] - Duplicate declaration of InputBufferUnderrunError in lib/nodejs/lib/thrift/json_protocol.js
185 * [THRIFT-4551] - Add prettier for consistent JS code formatting
186
187## lua
188 * [THRIFT-4591] - lua client uses two write() calls per framed message send
189 * [THRIFT-3863] - Can't "make install" Lua Library
190
191## netcore
192 * [THRIFT-4524] - .NET Core Server doesn't close properly when cancelled
193 * [THRIFT-4434] - Update .NET Core components, add tests for .Net Core library and .Net Core compiler, fix bugs and build process
194 * [THRIFT-4446] - JSONProtocol Base64 Encoding Trims Padding
195
196## node.js
197 * [THRIFT-4225] - Error handling malformed arguments leaks memory, corrupts transport buffers causing next RPC to fail
198 * [THRIFT-3950] - Memory leak while calling oneway method
199 * [THRIFT-3143] - add typescript directory support
200 * [THRIFT-4564] - TBufferedTransport can leave corrupt data in the buffer
201 * [THRIFT-4647] - Node.js Fileserver webroot path
202 * [THRIFT-4489] - Unix domain socket support for NodeJS client
203 * [THRIFT-4443] - node.js json_protocol throws error in skip function
204 * [THRIFT-4604] - NodeJS: Expose Int64 from browser.js for consumption by browser
205 * [THRIFT-4480] - NodeJS warning on binary_protocol writeMessageEnd when seqid = 0
206
207## perl
208 * [THRIFT-4382] - Replace the use of Perl Indirect Object Syntax calls to new()
209 * [THRIFT-4471] - Thrift CPAN release is missing Makefile.PL and the clients are unable to build the module
210 * [THRIFT-4416] - Perl CPAN Packaging Improvements
211
212## php
213 * [THRIFT-4474] - PHP generator use PSR-4 default
214 * [THRIFT-4463] - PHP generated code match PSR-2
215 * [THRIFT-4373] - Extending Thrift class results in "Attempt serialize from non-Thrift object"
216 * [THRIFT-4354] - TSocket block on read
217 * [THRIFT-4423] - migrate php library to psr-4
218 * [THRIFT-4656] - infinite loop in latest PHP library
219 * [THRIFT-4477] - TBufferedTransport must have underlying transport
220 * [THRIFT-4475] - lib/php/test should be checked for PSR-2
221 * [THRIFT-4498] - add phpcs back
222 * [THRIFT-4460] - php library use PSR-2
223 * [THRIFT-4641] - TCurlClient doesn't check for HTTP status code
224 * [THRIFT-4645] - TCurlClient: show actual error message when throwing TTransportException
225 * [THRIFT-4674] - Add stream context support into PHP/THttpClient
226 * [THRIFT-4459] - reduce php library directory depth
227
228## python
229 * [THRIFT-4670] - Twisted, slots, and void method fails with "object has no attribute 'success'"
230 * [THRIFT-4464] - Potentially server-crashing typo in Python TNonblockingServer
231 * [THRIFT-4548] - Supporting TBinaryProtocolAccelerated protocol when using TMultiplexedProcessor in Python
232 * [THRIFT-4577] - Outdated cipher string in python unit test
233 * [THRIFT-4505] - python build on Vagrant Windows boxes fails
234 * [THRIFT-4621] - THeader for Python
235 * [THRIFT-4668] - make socket backlog configurable for python
236 * [THRIFT-4561] - Python: cleanup socket timeout settings
237
238## ruby
239 * [THRIFT-4289] - Thrift RSpec test suite fails with Ruby 2.4.x due to Fixnum deprecation
240 * [THRIFT-4342] - Support ruby rspec 3
241 * [THRIFT-4525] - Add ssl socket option to ruby cross tests
242 * [THRIFT-4450] - Add seek support to TCompactInputProtocol in Rust
243 * [THRIFT-4631] - Codegen Creates Invalid Ruby for Recursive Structs
244 * [THRIFT-4472] - Fix the genspec for ruby so it does not complain about an invalid license
245
246## rust
247 * [THRIFT-4662] - Rust const string calls function at compile time
248 * [THRIFT-4661] - Rust enum name wrong case in generated structs
249 * [THRIFT-4617] - Avoid generating conflicting struct names in Rust code
250 * [THRIFT-4529] - Rust generation should include #![allow(non_snake_case)] or force conform to Rust style guidelines
251 * [THRIFT-4390] - Rust binary protocol and buffered transport cannot handle writes above 4096 bytes
252 * [THRIFT-4419] - Rust framed transport cannot handle writes above 4096 bytes
253 * [THRIFT-4658] - Rust's TBinaryInputProtocol fails when strict is false
254 * [THRIFT-4187] - Dart -> Rust Framed cross tests fail
255 * [THRIFT-4664] - Rust cannot create ReadHalf/WriteHalf to implement custom tranports
256 * [THRIFT-4665] - Keep Rust library up-to-date on crates.io
257
258## swift (new language support in 0.12.0)
259 * [THRIFT-3773] - Swift Library
260
261## test suite
262 * [THRIFT-4515] - Gracefully shutdown cross-test servers to fully test teardown
263 * [THRIFT-4085] - Add .NET Core to the make cross standard test suite
264 * [THRIFT-4358] - Add unix domain sockets in ruby to cross test - code exists
265
266## typescript (new language support in 0.12.0)
267 * [THRIFT-3143] - add typescript directory support
268
269================================================================================
270Thrift 0.11.0
271--------------------------------------------------------------------------------
272## Sub-task
273 * [THRIFT-2733] - Erlang coding standards
274 * [THRIFT-2740] - Perl coding standards
275 * [THRIFT-3610] - Streamline exception handling in Python server handler
276 * [THRIFT-3686] - Java processor should report internal error on uncaught exception
277 * [THRIFT-4049] - Skip() should throw TProtocolException.INVALID_DATA on unknown data types
278 * [THRIFT-4053] - Skip() should throw TProtocolException.INVALID_DATA on unknown data types
279 * [THRIFT-4136] - Align is_binary() method with is_string() to simplify those checks
280 * [THRIFT-4137] - Fix remaining undefined behavior invalid vptr casts in Thrift Compiler
281 * [THRIFT-4138] - Fix remaining undefined behavior invalid vptr casts in C++ library
282 * [THRIFT-4296] - Fix Ubuntu Xenial build environment for the python language
283 * [THRIFT-4298] - Fix Ubuntu Xenial build environment for the go 1.6 language
284 * [THRIFT-4299] - Fix Ubuntu Xenial build environment for the D language
285 * [THRIFT-4300] - Fix make cross in Ubuntu Xenial docker environment, once all language support issues are fixed
286 * [THRIFT-4302] - Fix Ubuntu Xenial make cross testing for lua and php7
287 * [THRIFT-4398] - Update EXTRA_DIST for "make dist"
288
289## Bug
290 * [THRIFT-381] - Fail fast if configure detects C++ problems
291 * [THRIFT-1677] - MinGW support broken
292 * [THRIFT-1805] - Thrift should not swallow ALL exceptions
293 * [THRIFT-2026] - Fix TCompactProtocol 64 bit builds
294 * [THRIFT-2642] - Recursive structs don't work in python
295 * [THRIFT-2889] - stable release 0.9.2, erlang tutorial broken
296 * [THRIFT-2913] - Ruby Server Thrift::ThreadPoolServer should serve inside a thread
297 * [THRIFT-2998] - Node.js: Missing header from http request
298 * [THRIFT-3000] - .NET implementation has trouble with mixed IP modes
299 * [THRIFT-3281] - Travis CI build passed but the log says BUILD FAILED
300 * [THRIFT-3358] - Makefile:1362: *** missing separator. Stop.
301 * [THRIFT-3600] - Make TTwisted server send exception on unexpected handler error
302 * [THRIFT-3602] - Make Tornado server send exception on unexpected handler error
303 * [THRIFT-3657] - D TFileWriterTransport close should use non-priority send
304 * [THRIFT-3700] - Go Map has wrong default value when optional
305 * [THRIFT-3703] - Unions Field Count Does Not Consider Map/Set/List Fields
306 * [THRIFT-3730] - server log error twice
307 * [THRIFT-3778] - go client can not pass method parameter to server of other language if no field_id is given
308 * [THRIFT-3784] - thrift-maven-plugin generates invalid include directories for IDL in dependency JARs
309 * [THRIFT-3801] - Node Thrift client throws exception with multiplexer and responses that are bigger than a single buffer
310 * [THRIFT-3821] - TMemoryBuffer buffer may overflow when resizing
311 * [THRIFT-3832] - Thrift version 0.9.3 example on Windows, Visual Studio, linking errors during compiling
312 * [THRIFT-3847] - thrift/config.h includes a #define for VERSION which will likely conflict with existing user environment or code
313 * [THRIFT-3873] - Fix various build warnings when using Visual Studio
314 * [THRIFT-3891] - TNonblockingServer configured with more than one IO threads does not always return from serve() upon stop()
315 * [THRIFT-3892] - Thrift uses TLS SNI extension provided by OpenSSL library. Older version of OpenSSL(< 0.9.8f) may create problem because they do not support 'SSL_set_tlsext_host_name()'.
316 * [THRIFT-3895] - Build fails using Java 1.8 with Ant < 1.9
317 * [THRIFT-3896] - map<string,string> data with number string key cannot access that deserialized by php extension
318 * [THRIFT-3938] - Python TNonblockingServer does not work with SSL
319 * [THRIFT-3944] - TSSLSocket has dead code in checkHandshake
320 * [THRIFT-3946] - Java 1.5 compatibility broken for binary fields (java5 option)
321 * [THRIFT-3960] - Inherited services in Lua generator are not named correctly
322 * [THRIFT-3962] - Ant build.xml broken on Windows for Java library
323 * [THRIFT-3963] - Thrift.cabal filename does not match module name
324 * [THRIFT-3967] - gobject/gparam.h:166:33: warning: enumerator value for ‘G_PARAM_DEPRECATED’ is not an integer constant expression
325 * [THRIFT-3968] - Deserializing empty string/binary fields
326 * [THRIFT-3974] - Using clang-3.8 and ThreadSanitizer on the concurrency_test claims bad PThread behavior
327 * [THRIFT-3984] - PHP7 extension causes segfault
328 * [THRIFT-4008] - broken ci due to upstream dependency versioning break
329 * [THRIFT-4009] - Use @implementer instead of implements in TTwisted.py
330 * [THRIFT-4010] - Q.fcall messing up with *this* pointer inside called function
331 * [THRIFT-4011] - Sets of Thrift structs generate Go code that can't be serialized to JSON
332 * [THRIFT-4012] - Python Twisted implementation uses implements, not compatible with Py3
333 * [THRIFT-4014] - align C# meta data in AssemblyInfo.cs
334 * [THRIFT-4015] - Fix wrongly spelled "Thirft"s
335 * [THRIFT-4016] - testInsanity() impl does not conform to test spec in ThriftTest.thrift
336 * [THRIFT-4023] - Skip unexpected field types on read/write
337 * [THRIFT-4024] - Skip() should throw on unknown data types
338 * [THRIFT-4026] - TSSLSocket doesn't work with Python < 2.7.9
339 * [THRIFT-4029] - Accelerated protocols do not build from thrift-py 0.10.0 on PyPI
340 * [THRIFT-4031] - Go plugin generates invalid code for lists of typedef'ed built-in types
341 * [THRIFT-4033] - Default build WITH_PLUGIN=ON for all builds results in packaging errors
342 * [THRIFT-4034] - CMake doesn't work to build compiler on MacOS
343 * [THRIFT-4036] - Add .NET Core environment/build support to the docker image
344 * [THRIFT-4038] - socket check: checking an unsigned number against >= 0 never fails
345 * [THRIFT-4042] - ExtractionError when using accelerated thrift in a multiprocess test
346 * [THRIFT-4043] - thrift perl debian package is placing files in the wrong place
347 * [THRIFT-4044] - Build job 17 failing on every pull request; hspec core (haskell) 2.4 issue
348 * [THRIFT-4046] - MinGW with gcc 6.2 does not compile on Windows
349 * [THRIFT-4060] - Thrift printTo ostream overload mechanism breaks down when types are nested
350 * [THRIFT-4062] - Remove debug print from TServiceClient
351 * [THRIFT-4065] - Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and remove unnecessary code
352 * [THRIFT-4068] - A code comment in Java ServerSocket is wrong around accept()
353 * [THRIFT-4073] - enum files are still being generated with unused imports
354 * [THRIFT-4076] - Appveyor builds failing because ant 1.9.8 was removed from apache servers
355 * [THRIFT-4077] - AI_ADDRCONFIG redefined after recent change to PlatformSocket header
356 * [THRIFT-4079] - Generated perl code that returns structures from included thrift files is missing a necessary use clause
357 * [THRIFT-4087] - Spurious exception destroying TThreadedServer because of incorrect join() call
358 * [THRIFT-4102] - TBufferedTransport performance issue since 0.10.0
359 * [THRIFT-4106] - concurrency_test fails randomly
360 * [THRIFT-4108] - c_glib thrift ssl has multiple bugs and deprecated functions
361 * [THRIFT-4109] - Configure Script uses string comparison for versions
362 * [THRIFT-4129] - C++ TNonblockingServer fd leak when failing to dispatch new connections
363 * [THRIFT-4131] - Javascript with WebSocket handles oneway methods wrong
364 * [THRIFT-4134] - Fix remaining undefined behavior invalid vptr casts
365 * [THRIFT-4140] - Use of non-thread-safe function gmtime()
366 * [THRIFT-4141] - Installation of haxe in docker files refers to a redirect link and fails
367 * [THRIFT-4147] - Rust: protocol should accept transports with non-static lifetime
368 * [THRIFT-4148] - [maven-thrift-plugin] compile error while import a thrift in dependency jar file.
369 * [THRIFT-4149] - System.out pollutes log files
370 * [THRIFT-4154] - PHP close() of a TSocket needs to close any type of socket
371 * [THRIFT-4158] - minor issue in README-MSYS2.md
372 * [THRIFT-4159] - Building tests fails on MSYS2 (MinGW64) due to a (small?) linker error
373 * [THRIFT-4160] - TNonblocking server fix use of closed/freed connections
374 * [THRIFT-4161] - TNonBlocking server using uninitialized event in error paths
375 * [THRIFT-4162] - TNonBlocking handling of TSockets in error state is incorrect after fd is closed
376 * [THRIFT-4164] - Core in TSSLSocket cleanupOpenSSL when destroying a mutex used by openssl
377 * [THRIFT-4165] - C++ build has many warnings under c++03 due to recent changes, cmake needs better platform-independent language level control
378 * [THRIFT-4166] - Recent fix to remove boost::lexical_cast usage broke VS2010
379 * [THRIFT-4167] - Missing compile flag
380 * [THRIFT-4170] - Support lua 5.1 or earlier properly for object length determination
381 * [THRIFT-4172] - node.js tutorial client does not import assert, connection issues are not handled properly
382 * [THRIFT-4177] - Java compiler produces deep copy constructor that could make shallow copy instead
383 * [THRIFT-4184] - Building on Appveyor: invalid escape sequence \L
384 * [THRIFT-4185] - fb303 counter encoding fix
385 * [THRIFT-4189] - Framed/buffered transport Dispose() does not dispose the nested transport
386 * [THRIFT-4193] - Lower the default maxReadBufferBytes for non-blocking servers
387 * [THRIFT-4195] - Compilation to GO produces broken code
388 * [THRIFT-4196] - Cannot generate recursive Rust types
389 * [THRIFT-4204] - typo in compact spec
390 * [THRIFT-4206] - Strings in container fields are not decoded properly with py:dynamic and py:utf8strings
391 * [THRIFT-4208] - C# NamedPipesServer not really working in some scenarios
392 * [THRIFT-4211] - Fix GError glib management under Thrift
393 * [THRIFT-4212] - c_glib flush tries to close SSL even if socket is invalid
394 * [THRIFT-4213] - Travis build fails at curl -sSL https://www.npmjs.com/install.sh | sh
395 * [THRIFT-4215] - Golang TTransportFactory Pattern Squelches Errors
396 * [THRIFT-4216] - Golang Http Clients Do Not Respect User Options
397 * [THRIFT-4218] - Set TCP_NODELAY for PHP client socket
398 * [THRIFT-4219] - Golang HTTP clients created with Nil buffer
399 * [THRIFT-4231] - TJSONProtocol throws unexpected non-Thrift-exception on null strings
400 * [THRIFT-4232] - ./configure does bad ant version check
401 * [THRIFT-4234] - Travis build fails cross language tests with "Unsupported security protocol type"
402 * [THRIFT-4237] - Go TServerSocket Race Conditions
403 * [THRIFT-4240] - Go TSimpleServer does not close properly
404 * [THRIFT-4243] - Go TSimpleServer race on wait in Stop() method
405 * [THRIFT-4245] - Golang TFramedTransport's writeBuffer increases if writes to transport failed
406 * [THRIFT-4246] - Sequence number mismatch on multiplexed clients
407 * [THRIFT-4247] - Compile fails with openssl 1.1
408 * [THRIFT-4248] - Compile fails - strncpy, memcmp, memset not declared in src/thrift/transport/TSSLSocket.cpp
409 * [THRIFT-4251] - Java Epoll Selector Bug
410 * [THRIFT-4257] - Typescript async callbacks do not provide the correct types
411 * [THRIFT-4258] - Boost/std thread wrapping faultiness
412 * [THRIFT-4260] - Go context generation issue. Context is parameter in Interface not in implementation
413 * [THRIFT-4261] - Go context generation issue: breaking change in generated code regarding thrift.TProcessorFunction interface
414 * [THRIFT-4262] - Invalid binding to InterlockedCompareExchange64() with 64-bit targets
415 * [THRIFT-4263] - Fix use after free bug for thrown exceptions
416 * [THRIFT-4266] - Erlang library throws during skipping fields of composite type (maps, lists, structs, sets)
417 * [THRIFT-4268] - Erlang library emits debugging output in transport layer
418 * [THRIFT-4273] - erlang:now/0: Deprecated BIF.
419 * [THRIFT-4274] - Python feature tests for SSL/TLS failing
420 * [THRIFT-4279] - Wrong path in include directive in generated Thrift sources
421 * [THRIFT-4283] - TNamedPipeServer race condition in interrupt
422 * [THRIFT-4284] - File contains a NBSP: lib/nodejs/lib/thrift/web_server.js
423 * [THRIFT-4290] - C# nullable option generates invalid code for non-required enum field with default value
424 * [THRIFT-4292] - TimerManager::remove() is not implemented
425 * [THRIFT-4307] - Make ssl-open timeout effective in golang client
426 * [THRIFT-4312] - Erlang client cannot connect to Python server: exception error: econnrefused
427 * [THRIFT-4313] - Program code of the Erlang tutorial files contain syntax errors
428 * [THRIFT-4316] - TByteBuffer.java will read too much data if a previous read returns fewer bytes than requested
429 * [THRIFT-4319] - command line switch for "evhttp" incorrectly resolved to anon pipes
430 * [THRIFT-4323] - range check errors or NPE in edge cases
431 * [THRIFT-4324] - field names can conflict with local vars in generated code
432 * [THRIFT-4328] - Travis CI builds are timing out (job 1) and haxe builds are failing since 9/11
433 * [THRIFT-4329] - c_glib Doesn't have a multiplexed processor
434 * [THRIFT-4331] - C++: TSSLSockets bug in handling huge messages, bug in handling polling
435 * [THRIFT-4332] - Binary protocol has memory leaks
436 * [THRIFT-4334] - Perl indentation incorrect when defaulting field attribute to a struct
437 * [THRIFT-4339] - Thrift Framed Transport in Erlang crashes server when client disconnects
438 * [THRIFT-4340] - Erlang fix a crash on client close
439 * [THRIFT-4355] - Javascript indentation incorrect when defaulting field attribute to a struct
440 * [THRIFT-4356] - thrift_protocol call Transport cause Segmentation fault
441 * [THRIFT-4359] - Haxe compiler looks like it is producing incorrect code for map or set key that is binary type
442 * [THRIFT-4362] - Missing size-check can lead to huge memory allocation
443 * [THRIFT-4364] - Website contributing guide erroneously recommends submitting patches in JIRA
444 * [THRIFT-4365] - Perl generated code uses indirect object syntax, which occasionally causes compilation errors.
445 * [THRIFT-4367] - python TProcessor.process is missing "self"
446 * [THRIFT-4370] - Ubuntu Artful cppcheck and flake8 are more stringent and causing SCA build job failures
447 * [THRIFT-4372] - Pipe write operations across a network are limited to 65,535 bytes per write.
448 * [THRIFT-4374] - cannot load thrift_protocol due to undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE
449 * [THRIFT-4375] - TMemory throw bad_alloc due to counter overflow
450 * [THRIFT-4376] - Coverity high impact issue resolution
451 * [THRIFT-4377] - haxe. socket handles leak in TSimpleServer
452 * [THRIFT-4381] - Wrong isset bitfield value after transmission
453 * [THRIFT-4385] - Go remote client -u flag is broken
454 * [THRIFT-4392] - compiler/..../plugin.thrift structs mis-ordered blows up ocaml generator
455 * [THRIFT-4395] - Unable to build in the ubuntu-xenial docker image: clap 2.28 requires Rust 1.20
456 * [THRIFT-4396] - inconsistent (or plain wrong) version numbers in master/trunk
457
458## Documentation
459 * [THRIFT-4157] - outdated readme about Haxe installation on Linux
460
461## Improvement
462 * [THRIFT-105] - make a thrift_spec for a structures with negative tags
463 * [THRIFT-281] - Cocoa library code needs comments, badly
464 * [THRIFT-775] - performance improvements for Perl
465 * [THRIFT-2221] - Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
466 * [THRIFT-2364] - OCaml: Use Oasis exclusively for build process
467 * [THRIFT-2504] - TMultiplexedProcessor should allow registering default processor called if no service name is present
468 * [THRIFT-3207] - Enable build with OpenSSL 1.1.0 series
469 * [THRIFT-3272] - Perl SSL Authentication Support
470 * [THRIFT-3357] - Generate EnumSet/EnumMap where elements/keys are enums
471 * [THRIFT-3369] - Implement SSL/TLS support on C with c_glib
472 * [THRIFT-3467] - Go Maps for Thrift Sets Should Have Values of Type struct{}
473 * [THRIFT-3580] - THeader for Haskell
474 * [THRIFT-3627] - Missing basic code style consistency of JavaScript.
475 * [THRIFT-3706] - There's no support for Multiplexed protocol on c_glib library
476 * [THRIFT-3766] - Add getUnderlyingTransport() to TZlibTransport
477 * [THRIFT-3776] - Go code from multiple thrift files with the same namespace
478 * [THRIFT-3823] - Escape documentation while generating non escaped documetation
479 * [THRIFT-3854] - allow users to clear read buffers
480 * [THRIFT-3859] - Unix Domain Socket Support in Objective-C
481 * [THRIFT-3921] - C++ code should print enums as strings
482 * [THRIFT-3926] - There should be an error emitted when http status code is not 200
483 * [THRIFT-4007] - Micro-optimization of TTransport.py
484 * [THRIFT-4040] - Add real cause of TNonblockingServerSocket error to exception
485 * [THRIFT-4064] - Update node library dependencies
486 * [THRIFT-4069] - All perl packages should have proper namespace, version syntax, and use proper thrift exceptions
487 * [THRIFT-4071] - Consolidate the Travis CI jobs where possible to put less stress on the Apache Foundation's allocation of CI build slaves
488 * [THRIFT-4072] - Add the possibility to send custom headers in TCurlClient
489 * [THRIFT-4075] - Better MinGW support for headers-only boost (without thread library)
490 * [THRIFT-4081] - Provide a MinGW 64-bit Appveyor CI build for better pull request validation
491 * [THRIFT-4084] - Improve SSL security in thrift by adding a make cross client that checks to make sure SSLv3 protocol cannot be negotiated
492 * [THRIFT-4095] - Add multiplexed protocol to Travis CI for make cross
493 * [THRIFT-4099] - Auto-derive Hash for generated Rust structs
494 * [THRIFT-4110] - The debian build files do not produce a "-dbg" package for debug symbols of libthrift0
495 * [THRIFT-4114] - Space after '///' in doc comments
496 * [THRIFT-4126] - Validate objects in php extension
497 * [THRIFT-4130] - Ensure Apache Http connection is released back to pool after use
498 * [THRIFT-4151] - Thrift Mutex Contention Profiling (pthreads) should be disabled by default
499 * [THRIFT-4176] - Implement a threaded and threadpool server type for Rust
500 * [THRIFT-4183] - Named pipe client blocks forever on Open() when there is no server at the other end
501 * [THRIFT-4190] - improve C# TThreadPoolServer defaults
502 * [THRIFT-4197] - Implement transparent gzip compression for HTTP transport
503 * [THRIFT-4198] - Ruby should log Thrift internal errors to global logger
504 * [THRIFT-4203] - thrift server stop gracefully
505 * [THRIFT-4205] - c_glib is not linking against glib + gobject
506 * [THRIFT-4209] - warning CS0414 in T[TLS]ServerSocket.cs
507 * [THRIFT-4210] - include Thrift.45.csproj into CI runs
508 * [THRIFT-4217] - HttpClient should support gzip and deflate
509 * [THRIFT-4222] - Support Unix Domain Sockets in Golang TServerSocket
510 * [THRIFT-4233] - Make THsHaServer.invoker available (get method only) in inherited classes
511 * [THRIFT-4236] - Support context in go generated code.
512 * [THRIFT-4238] - JSON generator: make annotation-aware
513 * [THRIFT-4269] - Don't append '.' to Erlang namespace if it ends in '_'.
514 * [THRIFT-4270] - Generate Erlang mapping functions for const maps and lists
515 * [THRIFT-4275] - Add support for zope.interface only, apart from twisted support.
516 * [THRIFT-4285] - Pull generated send/recv into library to allow behaviour to be customised
517 * [THRIFT-4287] - Add c++ compiler "no_skeleton" flag option
518 * [THRIFT-4288] - Implement logging levels properly for node.js
519 * [THRIFT-4295] - Refresh the Docker image file suite for Ubuntu, Debian, and CentOS
520 * [THRIFT-4305] - Emit ddoc for generated items
521 * [THRIFT-4306] - Thrift imports not replicated to D service output
522 * [THRIFT-4315] - Add default message for TApplicationException
523 * [THRIFT-4318] - Delphi performance improvements
524 * [THRIFT-4325] - Simplify automake cross compilation by relying on one global THRIFT compiler path
525 * [THRIFT-4327] - Improve TimerManager API to allow removing specific task
526 * [THRIFT-4330] - Allow unused crates in Rust files
527 * [THRIFT-4333] - Erlang tutorial examples are using a different port (9999)
528 * [THRIFT-4343] - Change CI builds to use node.js 8.x LTS once available
529 * [THRIFT-4345] - Create a docker build environment that uses the minimum supported language levels
530 * [THRIFT-4346] - Allow Zlib transport factory to wrap other transports
531 * [THRIFT-4348] - Perl HTTP Client custom HTTP headers
532 * [THRIFT-4350] - Update netcore build for dotnet 2.0 sdk and make cross validation
533 * [THRIFT-4351] - Use Travis CI Build Stages to optimize the CI build
534 * [THRIFT-4353] - cannot read via thrift_protocol at server side
535 * [THRIFT-4378] - add set stopTimeoutUnit method to TThreadPoolServer
536
537## New Feature
538 * [THRIFT-750] - C++ Compiler Virtual Function Option
539 * [THRIFT-2945] - Implement support for Rust language
540 * [THRIFT-3857] - thrift js:node complier support an object as parameter not an instance of struct
541 * [THRIFT-3933] - Port official C# .NET library for Thrift to C# .NET Core libary
542 * [THRIFT-4039] - Update of Apache Thrift .Net Core lib
543 * [THRIFT-4113] - Provide a buffer transport for reading/writing in memory byte stream
544
545## Question
546 * [THRIFT-2956] - autoconf - possibly undefined macro - AC_PROG_BISON
547 * [THRIFT-4223] - Add support to the isServing() method for the C++ library
548
549## Task
550 * [THRIFT-3622] - Fix deprecated uses of std::auto_ptr
551 * [THRIFT-4028] - Please remove System.out.format from the source code
552 * [THRIFT-4186] - Build and test rust client in Travis
553
554## Test
555 * [THRIFT-4264] - PHP - Support both shared & static linking of sockets library
556
557## Wish
558 * [THRIFT-4344] - Define and maintain the minimum language level for all languages in one place
559
560
561Thrift 0.10.0
562--------------------------------------------------------------------------------
563## Bug
564 * [THRIFT-1840] - Thrift Generated Code Causes Global Variable Leaks
565 * [THRIFT-1828] - moc_TQTcpServer.cpp was removed from source tree but is in thrift-0.9.0.tar.gz
566 * [THRIFT-1790] - cocoa: Duplicate interface definition error
567 * [THRIFT-1776] - TPipeServer should implement "listen", so that TServerEventHandler preServe will work right
568 * [THRIFT-1351] - Compiler does not care about binary strings
569 * [THRIFT-1229] - Python fastbinary.c can not handle unicode as generated python code
570 * [THRIFT-749] - C++ TBufferedTransports do not flush their buffers on delete
571 * [THRIFT-747] - C++ TSocket->close calls shutdown breaking forked parent process
572 * [THRIFT-732] - server exits abnormally when client calls send_xxx function without calling recv_xxx function
573 * [THRIFT-3942] - TSSLSocket does not honor send and receive timeouts
574 * [THRIFT-3941] - WinXP version of thrift_poll() relies on undefined behavior by passing a destructed variable to select()
575 * [THRIFT-3940] - Visual Studio project file for compiler is broken
576 * [THRIFT-3943] - Coverity Scan identified some high severity defects
577 * [THRIFT-3929] - PHP "nsglobal" Option Results in Syntax Error in Generated Code (Trailing Backslash)
578 * [THRIFT-3936] - Cannot compile 0.10.0 development tip with VS2013 and earlier (snprintf, uint32_t)
579 * [THRIFT-3935] - Incorrect skipping of map and set
580 * [THRIFT-3920] - Ruby: Ensuring that HTTP failures will clear the http transport outbuf var
581 * [THRIFT-3919] - C# TTLSServerSocket does not use clientTimeout
582 * [THRIFT-3917] - Check backports.ssl_match_hostname module version
583 * [THRIFT-3909] - Fix c_glib static lib CMake build
584 * [THRIFT-3904] - Typo in node tutorial leads to wrong transport being used
585 * [THRIFT-3848] - As an implementer of a perl socket server, I do not want to have to remember to ignore SIGCHLD for it to work properly
586 * [THRIFT-3844] - thrift_protocol cannot compile in 7.0.7
587 * [THRIFT-3843] - integer issues with Haxe PHP targets cause ZigZag encoding to fail
588 * [THRIFT-3842] - Dart generates incorrect code for a const struct
589 * [THRIFT-3841] - dart compact protocol incorrectly serializes/deserialized doubles
590 * [THRIFT-3708] - NameError: global name 'TProtocol' is not defined
591 * [THRIFT-3704] - "TConnectedClient died: Could not refill buffer" message shown when using HTTP Server
592 * [THRIFT-3678] - Fix javadoc errors on JDK 8
593 * [THRIFT-3014] - AppVeyor support
594 * [THRIFT-2994] - Node.js TJSONProtocol cannot be used for object serialization.
595 * [THRIFT-2974] - writeToParcel throws NPE for optional enum fields
596 * [THRIFT-2948] - Python TJSONProtocol doesn't handle structs with binary fields containing invalid unicode.
597 * [THRIFT-2845] - ChildService.Plo: No such file or directory
598 * [THRIFT-3276] - Binary data does not decode correctly using the TJSONProtocol when the base64 encoded data is padded.
599 * [THRIFT-3253] - Using latest version of D gives deprecation notices
600 * [THRIFT-2883] - TTwisted.py, during ConnectionLost processing: exceptions.RuntimeError: dictionary changed size during iteration
601 * [THRIFT-2019] - Writing on a disconnected socket on Mac causes SIG PIPE
602 * [THRIFT-2020] - Thrift library has some empty files that haven't really been deleted
603 * [THRIFT-2049] - Go compiler doesn't build on native Windows
604 * [THRIFT-2024] - TServer.cpp warns on 64-bit platforms about truncating an rlim_t into an int
605 * [THRIFT-2023] - gettimeofday implementation on Windows errors when no time zone is passed in.
606 * [THRIFT-2022] - CoB and dense code generation still uses TR1 bind, even though that doesn't work with clang
607 * [THRIFT-2027] - Minor 64-bit and NOMINMAX issues in C++ library
608 * [THRIFT-2156] - TServerSocket::listen() is throwing exceptions with misleading information
609 * [THRIFT-2154] - Missing <operator body
610 * [THRIFT-2148] - TNonblockingMultiFetchClient imports log4j
611 * [THRIFT-2103] - [python] Support for SSL certificates with Subject Alternative Names
612 * [THRIFT-1931] - Sending a frame size of zero to a TNonblockingServer causes an assertion failure
613 * [THRIFT-1751] - definition of increase_max_fds doesn't compile when HAVE_SYS_RESOURCE_H is not defined
614 * [THRIFT-1522] - TServerSocket potential memory leak with addrinfo *res0
615 * [THRIFT-1547] - Problems building against static libevent
616 * [THRIFT-1545] - Generated javascript code uses "for in" for looping over arrays
617 * [THRIFT-1487] - Namespace problem, compile fails on generated code
618 * [THRIFT-1472] - Configuration conflicts with boost platform include header
619 * [THRIFT-6] - Thrift libraries and compiler lack version number
620 * [THRIFT-1680] - make install requires GNU make
621 * [THRIFT-3869] - Dart Tutorial build fails with Error 65 at "pub get"
622 * [THRIFT-3861] - Travis CI builds are timing out - C++TServerIntegrationTest appears to be hanging
623 * [THRIFT-3855] - In the go simple server, if Stop() is called multiple times it hangs
624 * [THRIFT-3885] - PHP: Error when readI64 in TCompactProtocol
625 * [THRIFT-3883] - Go TestAllConnection can fail with port 9090 collision
626 * [THRIFT-3884] - Fix Erlang compact protocol double endianess and boolean list
627 * [THRIFT-3880] - Erlang Compact protocol - boolean values inverted
628 * [THRIFT-3879] - Undefined evaluation order causes incorrect processing in the C++ library JSON protocol
629 * [THRIFT-3851] - Golang thrift continually adds the x/thrift content type
630 * [THRIFT-3850] - All apache builds are failing when initiated from a github pull request
631 * [THRIFT-3837] - Thift 0.9.3 can't be build with QuickCheck 2.8.2 and unordered-containers 0.2.6
632 * [THRIFT-3831] - build of test/cpp/src/TestClient.cpp fails with newer gcc on platforms with unsigned char due to narrowing conversions
633 * [THRIFT-3827] - php CompactProtocol readI64 function has bug, when value has 32bit ~64bit, Example:value=1461563457000
634 * [THRIFT-3825] - Javascript test dependency is no longer available
635 * [THRIFT-3814] - Fix contention in TNonblockingServerTest
636 * [THRIFT-3793] - Appveyor builds reference an ant version that is no longer there
637 * [THRIFT-3786] - Node.js TLS emits 'connect' before connection is ready
638 * [THRIFT-3780] - Fix dart int64 usage when compiled to js
639 * [THRIFT-3789] - Node.js lacks ability to destroy connection
640 * [THRIFT-3796] - There's no --dbg for dh_strip, maybe someone has mistaken this for --dbg-package.
641 * [THRIFT-3795] - Generated hashValue method in Swift will overflow
642 * [THRIFT-3790] - Fix Delphi named pipe client to use timeout even when pipe doesn't yet exist
643 * [THRIFT-3787] - Node.js Connection object doesn't handle errors correctly
644 * [THRIFT-3791] - Delphi pipe client may fail even in a non-error condition
645 * [THRIFT-3771] - TBufferedTransport gets in invalid state on read/write errors
646 * [THRIFT-3764] - PHP "make install" does not install TMultiplexedProtocol.php nor TSimpleJSONProtocol.php
647 * [THRIFT-3768] - TThreadedServer may crash if it is destroyed immediately after it returns from serve(); TThreadedServer disconnects clients
648 * [THRIFT-3765] - memory leak in python compact protocol extension
649 * [THRIFT-3758] - TApplicationException::getType and TProtocolException::getType should be const
650 * [THRIFT-3763] - Fix serialization of i64 larger than 2^53 for browserify
651 * [THRIFT-3759] - required fields that are nil are silently ignored on write
652 * [THRIFT-3753] - TServerFramework::stop may fail to interrupt connected clients
653 * [THRIFT-3755] - TDebugProtocol::writeString hits assert in isprint on Windows with debug CRT
654 * [THRIFT-3751] - Compiler allows field ids that are too large for generated code
655 * [THRIFT-3748] - Node.js Deserialization of lists of lists is broken
656 * [THRIFT-3760] - Fix install paths etc of debian packages for py and perl
657 * [THRIFT-3757] - Fix various build warnings on Windows with VS2015 compiler
658 * [THRIFT-3750] - NSCopying copyWithZone: implementation does not check isSet
659 * [THRIFT-3747] - Duplicate node.js build on Travis-CI
660 * [THRIFT-3744] - The precision should be 17 (16 bits need after dot) after dot for double type.
661 * [THRIFT-3741] - haxe test is broken
662 * [THRIFT-3739] - Deprecation warning in codegen/base.d
663 * [THRIFT-3735] - JSON protocol left in incorrect state when an exception is thrown during read or write operations
664 * [THRIFT-3734] - To compare two string as lowercase.
665 * [THRIFT-3743] - Java JSON protocol left in incorrect state when an exception is thrown during read or write operations
666 * [THRIFT-3731] - Perl multiplex test is flaky
667 * [THRIFT-3729] - Restrict rake version
668 * [THRIFT-3727] - Incorrect require paths in Node.js tutorial
669 * [THRIFT-3723] - Fix Lua include path
670 * [THRIFT-3722] - Fix cert path in C++ cross tests for non-Linux platform
671 * [THRIFT-3726] - Fix incorrect conditional in TMultiplexedProcessor.py
672 * [THRIFT-3725] - Skip a flaky cross test entry (d-dart compact framed-ip)
673 * [THRIFT-3724] - Fix incorrect timeval conversion in libevent.d
674 * [THRIFT-3721] - CLONE - why not add unicode strings support to python directly?
675 * [THRIFT-3720] - TTcpSocketStreamImpl.Read() returns 0 if not all requested bytes could be read
676 * [THRIFT-3719] - Dart generator should use lowerCamelCase for service names
677 * [THRIFT-3902] - TSocket.open throws NullPointerException
678 * [THRIFT-3901] - TFramedTransport.open throws NullPointerException
679 * [THRIFT-3893] - Command injection in format_go_output
680 * [THRIFT-3807] - Swift compiler does not escape reserved words
681 * [THRIFT-3798] - THttpClient does not use proxy from http_proxy, https_proxy environment variables
682 * [THRIFT-3809] - wrong/unused BINARY type code
683 * [THRIFT-3806] - Swift generator does not handle self-referring structs
684 * [THRIFT-3805] - Golang server susceptible to memory spike from malformed message
685 * [THRIFT-3797] - Generated Delphi processor shouldn't error out on timed out exceptions
686 * [THRIFT-3813] - Appveyor builds reference an openssl version that is no longer there
687 * [THRIFT-3658] - Missing file in THRIFT-3599
688 * [THRIFT-3649] - Python TSaslClientTransport initializes TTransportException incorrectly
689 * [THRIFT-3650] - incorrect union serialization
690 * [THRIFT-3713] - lib/d/test/thrift_test_runner.sh is flaky on Jenkins
691 * [THRIFT-3668] - range check error in compact protocol
692 * [THRIFT-3663] - CMake cpp test fails to build on system without zlib
693 * [THRIFT-3712] - TTornadoServer cannot handle IPv6 address
694 * [THRIFT-3710] - Dart generator does not camel case Constants class names
695 * [THRIFT-3697] - Dart generator does not name imports
696 * [THRIFT-3690] - Work around docker image build failures on Travis-CI
697 * [THRIFT-3689] - thrift_reconnecting_client start failed when server is not available
698 * [THRIFT-3695] - Fix D test scripts
699 * [THRIFT-3675] - Union is not serialized correctly by Thrift C Glib
700 * [THRIFT-3673] - API fails with std::exception after a timeout occured in earlier any API call
701 * [THRIFT-3709] - Comment syntax can produce broken code
702 * [THRIFT-3705] - Go map has incorrect types when used with forward-defined types
703 * [THRIFT-3702] - Fix cross tests for Dart compact protocol (3 failing)
704 * [THRIFT-3683] - BadYieldError in thrift py:tornado server
705 * [THRIFT-3682] - Do not reuse refused sockets in test scripts
706 * [THRIFT-3681] - Fix Dart tutorial build
707 * [THRIFT-3680] - Java async processor fails to notify errors to clients
708 * [THRIFT-3714] - Thrift.TProtocolException is not defined in js/src/thrift.js
709 * [THRIFT-3688] - Fix socket bind failure detection of cross test
710 * [THRIFT-3641] - Ruby client should try to connect to every result of getaddrinfo
711 * [THRIFT-3635] - D transport_test is flaky on Jenkins and Travis
712 * [THRIFT-3618] - Python TSSLSocket deprecation message should print caller's location
713 * [THRIFT-3145] - JSON protocol does not handle bool and empty containers correctly
714 * [THRIFT-3158] - TBase<T,F>#deepCopy should return T
715 * [THRIFT-3157] - TBase signature should be TBase<T extends TBase<T,F>, F extends TFieldIdEnum>
716 * [THRIFT-3156] - Node TLS: server executes processing logic two full times
717 * [THRIFT-3154] - tutorial/py.tornado throw EOF exception
718 * [THRIFT-3063] - C++ build -Wunused-parameter warnings on processor_test, TransportTest
719 * [THRIFT-3056] - Add string/collection length limits for Python protocol readers
720 * [THRIFT-3237] - Fix TNamedPipeServer::createNamedPipe memory leak
721 * [THRIFT-3233] - Fix C++ ThreadManager::Impl::removeWorker worker join
722 * [THRIFT-3232] - Cannot deserialize json messages created with fieldNamesAsString
723 * [THRIFT-3206] - Fix Visual Studio build failure due 'pthread_self': identifier not found
724 * [THRIFT-3200] - JS and nodejs do not encode JSON protocol binary fields as base64
725 * [THRIFT-3199] - Exception field has basic metadata
726 * [THRIFT-3182] - TFramedTransport is in an invalid state after frame size exception
727 * [THRIFT-2536] - new TSocket, uninitialised value reported by valgrind
728 * [THRIFT-2527] - Apache Thrift IDL Compiler code generated for Node.js should be jshint clean
729 * [THRIFT-2519] - "processor" class is not being generated
730 * [THRIFT-2431] - TFileTransportTest fails with "check delta < XXX failed"
731 * [THRIFT-2708] - Erlang library does not support "oneway" message type
732 * [THRIFT-3377] - Deep copy is actually shallow when using typedef members
733 * [THRIFT-3376] - C# and Python JSON protocol double values lose precision
734 * [THRIFT-3373] - Various fixes for cross test servers and clients
735 * [THRIFT-3370] - errno extern variable redefined. Not compiling for Android
736 * [THRIFT-3379] - Potential out of range panic in Go JSON protocols
737 * [THRIFT-3371] - Abstract namespace Unix domain sockets broken in C++
738 * [THRIFT-3380] - nodejs: 0.9.2 -> 0.9.3 upgrade breaks Protocol and Transport requires
739 * [THRIFT-3367] - Fix bad links to coding_standards.md #634
740 * [THRIFT-3401] - Nested collections emit Objective-C code that cannot compile
741 * [THRIFT-3403] - JSON String reader doesn't recognize UTF-16 surrogate pairs
742 * [THRIFT-3362] - make check fails for C++ at the SecurityTest
743 * [THRIFT-3395] - Cocoa compiler produces corrupt code when boxing enums inside map.
744 * [THRIFT-3394] - compiler generates uncompilable code
745 * [THRIFT-3388] - hash doesn't work on set/list
746 * [THRIFT-3391] - Wrong bool formatting in test server
747 * [THRIFT-3390] - TTornado server doesn't handle closed connections properly
748 * [THRIFT-3382] - TBase class for C++ Library
749 * [THRIFT-3392] - Java TZlibTransport does not close its wrapper streams upon close()
750 * [THRIFT-3383] - i64 related warnings
751 * [THRIFT-3386] - misc. warnings with make check
752 * [THRIFT-3385] - warning: format ‘%lu’ expects ‘long unsigned int’, but has type ‘std::basic_string<char>::size_type {aka unsigned int}
753 * [THRIFT-3355] - npm WARN package.json thrift@1.0.0-dev No license field.
754 * [THRIFT-3360] - Improve cross test servers and clients further
755 * [THRIFT-3359] - Binary field incompatibilities
756 * [THRIFT-3354] - Fix word-extraction substr bug in initialism code
757 * [THRIFT-3350] - Python JSON protocol does not encode binary as Base64
758 * [THRIFT-3577] - assertion failed at line 512 of testcontainertest.c
759 * [THRIFT-3576] - Boost test --log_format arg does not accept lowercase
760 * [THRIFT-3575] - Go compiler tries to use unexported library methods when using read_write_private
761 * [THRIFT-3574] - Cocoa generator makes uncompilable imports
762 * [THRIFT-3570] - Remove duplicate instances that are added by upstream
763 * [THRIFT-3571] - Make feature test result browsable
764 * [THRIFT-3569] - c_glib protocols do not check number of bytes read by transport
765 * [THRIFT-3568] - THeader server crashes on readSlow
766 * [THRIFT-3567] - GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
767 * [THRIFT-3566] - C++/Qt: TQTcpServerTest::test_communicate() is never executed
768 * [THRIFT-3564] - C++/Qt: potential core dump in TQTcpServer in case an exception occurs in TAsyncProcessor::process()
769 * [THRIFT-3558] - typos in c_glib tests
770 * [THRIFT-3559] - Fix awkward extra semi-colons with Cocoa container literals
771 * [THRIFT-3555] - 'configure' script does not honor --with-openssl=<path> for libcrypto for BN_init
772 * [THRIFT-3554] - Constant decls may lead to "Error: internal error: prepare_member_name_mapping() already active for different struct"
773 * [THRIFT-3552] - glib_c Memory Leak
774 * [THRIFT-3551] - Thrift perl library missing package declaration
775 * [THRIFT-3549] - Exceptions are not properly stringified in Perl library
776 * [THRIFT-3546] - NodeJS code should not be namespaced (and is currently not strict-mode compliant)
777 * [THRIFT-3545] - Container type literals do not compile
778 * [THRIFT-3538] - Remove UnboundMethodType in TProtocolDecorator
779 * [THRIFT-3536] - Error 'char' does not contain a definition for 'IsLowSurrogate' for WP7 target
780 * [THRIFT-3534] - Link error when building with Qt5
781 * [THRIFT-3533] - Can not send nil pointer as service method argument
782 * [THRIFT-3507] - THttpClient does not use proxy from http_proxy, https_proxy environment variables
783 * [THRIFT-3502] - C++ TServerSocket passes small buffer to getsockname
784 * [THRIFT-3501] - Forward slash in comment causes compiler error
785 * [THRIFT-3498] - C++ library assumes optional function pthread_attr_setschedpolicy is available
786 * [THRIFT-3497] - Build fails with "invalid use of incomplete type"
787 * [THRIFT-3496] - C++: Cob style client fails when sending a consecutive request
788 * [THRIFT-3493] - libthrift does not compile on windows using visual studio
789 * [THRIFT-3488] - warning: unused variable 'program'
790 * [THRIFT-3489] - warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
791 * [THRIFT-3487] - Full support for newer Delphi versions
792 * [THRIFT-3528] - Fix warnings in thrift.ll
793 * [THRIFT-3527] - -gen py:dynamic,utf8strings ignores utf8strings option
794 * [THRIFT-3526] - Code generated by py:utf8strings does not work for Python3
795 * [THRIFT-3524] - dcc32 warning "W1000 Symbol 'IsLowSurrogate' is deprecated: 'Use TCharHelper'" in Thrift.Protocol.JSON.pas
796 * [THRIFT-3525] - py:dynamic fails to handle binary list/set/map element
797 * [THRIFT-3521] - TSimpleJSONProtocolTest is not deterministic (fails when run on JDK 8)
798 * [THRIFT-3520] - Dart TSocket onError stream should be typed as Object
799 * [THRIFT-3519] - fastbinary does not work with -gen py:utf8strings
800 * [THRIFT-3518] - TConcurrentClientSyncInfo files were missing for Visual Studio
801 * [THRIFT-3512] - c_glib: Build fails due to missing features.h
802 * [THRIFT-3483] - Incorrect empty binary handling introduced by THRIFT-3359
803 * [THRIFT-3479] - Oneway calls should not return exceptions to clients
804 * [THRIFT-3478] - Restore dropped method to THsHaServer.java
805 * [THRIFT-3477] - Parser fails on enum item that starts with 'E' letter and continues with number
806 * [THRIFT-3476] - Missing include in ./src/thrift/protocol/TJSONProtocol.cpp
807 * [THRIFT-3474] - Docker: thrift-compiler
808 * [THRIFT-3473] - When "optional' is used with a struct member, C++ server seems to not return it correctly
809 * [THRIFT-3468] - Dart TSocketTransport onError handler is too restrictive
810 * [THRIFT-3451] - thrift_protocol PHP extension missing config.m4 file
811 * [THRIFT-3456] - rounding issue in static assert
812 * [THRIFT-3455] - struct write method's return value is incorrect
813 * [THRIFT-3454] - Python Tornado tutorial is broken
814 * [THRIFT-3463] - Java can't be disabled in CMake build
815 * [THRIFT-3450] - NPE when using SSL
816 * [THRIFT-3449] - TBaseAsyncProcessor fb.responseReady() never called for oneway functions
817 * [THRIFT-3471] - Dart generator does not handle uppercase argument names
818 * [THRIFT-3470] - Sporadic timeouts with pipes
819 * [THRIFT-3465] - Go Code With Complex Const Initializer Compilation Depends On Struct Order
820 * [THRIFT-3464] - Fix several defects in c_glib code generator
821 * [THRIFT-3462] - Cocoa generates Incorrect #import header names
822 * [THRIFT-3453] - remove rat_exclude
823 * [THRIFT-3418] - Use of ciphers in ssl.wrap_socket() breaks python 2.6 compatibility
824 * [THRIFT-3417] - "namespace xsd" is not really working
825 * [THRIFT-3413] - Thrift code generation bug in Go when extending service
826 * [THRIFT-3420] - C++: TSSLSockets are not interruptable
827 * [THRIFT-3415] - include unistd.h conditionally
828 * [THRIFT-3414] - #include <pwd.h> in THeaderTransport.h breaks windows build
829 * [THRIFT-3411] - Go generates remotes with wrong package qualifiers when including
830 * [THRIFT-3430] - Go THttpClient does not read HTTP response body to completion when closing
831 * [THRIFT-3423] - First call to thrift_transport:read_exact fails to dispatch correct function
832 * [THRIFT-3422] - Go TServerSocket doesn't close on Interrupt
833 * [THRIFT-3421] - rebar as dependency instead of bundling (was: rebar fails if PWD contains Unicode)
834 * [THRIFT-3428] - Go test fails when running make check
835 * [THRIFT-3445] - Throwable messages are hidden from JVM stack trace output
836 * [THRIFT-3443] - Thrift include can generate uncompilable code
837 * [THRIFT-3444] - Large 64 bit Integer does not preserve value through Node.js JSONProtocol
838 * [THRIFT-3436] - misc. cross test issues with UTF-8 path names
839 * [THRIFT-3435] - Put generated Java code for fullcamel tests in a separate package/namespace
840 * [THRIFT-3433] - Doubles aren't interpreted correctly
841 * [THRIFT-3437] - Mingw-w64 build fail
842 * [THRIFT-3434] - Dart generator produces empty name in pubspec.yaml for includes without namespaces
843 * [THRIFT-3408] - JSON generator emits incorrect types
844 * [THRIFT-3406] - Cocoa client should not schedule streams on main runloop
845 * [THRIFT-3404] - JSON String reader doesn't recognize UTF-16 surrogate pair
846 * [THRIFT-3636] - Double precision is not fully preserved in C++ TJSONProtocol
847 * [THRIFT-3632] - c_glib testserialization fails with glib assertion
848 * [THRIFT-3619] - Using Thrift 0.9.3 with googletest on Linux gcc 4.9 / C++11
849 * [THRIFT-3617] - CMake does not build gv/xml generators
850 * [THRIFT-3615] - Fix Python SSL client resource leak on connection failure
851 * [THRIFT-3616] - lib/py/test/test_sslsocket.py is flaky
852 * [THRIFT-3643] - Perl SSL server crushes if a client disconnect without handshake
853 * [THRIFT-3639] - C# Thrift library forces TLS 1.0, thwarting TLS 1.2 usage
854 * [THRIFT-3633] - Travis "C C++ - GCC" build was using clang
855 * [THRIFT-3634] - Fix Python TSocket resource leak on connection failure
856 * [THRIFT-3630] - Debian/Ubuntu install docs need an update
857 * [THRIFT-3629] - Parser sets exitcode on errors, but generator does not
858 * [THRIFT-3608] - lib/cpp/test/SecurityTest is flaky in jenkins Thrift-precommit build.
859 * [THRIFT-3601] - Better conformance to PEP8 for generated code
860 * [THRIFT-3599] - Validate client IP address against cert's SubjectAltName
861 * [THRIFT-3598] - TBufferedTransport doesn't instantiate client connection
862 * [THRIFT-3597] - `make check` hangs in go tests
863 * [THRIFT-3589] - Dart generator uses wrong name in constructor for uppercase arguments with defaults
864 * [THRIFT-3588] - Using TypeScript with --noImplicitAny fails
865 * [THRIFT-3584] - boolean false value cannot be transferred
866 * [THRIFT-3578] - Make THeaderTransport detect TCompact framed and unframed
867 * [THRIFT-3323] - Python library does not handle escaped forward slash ("/") in JSON
868 * [THRIFT-3322] - CMake generated "make check" failes on python_test
869 * [THRIFT-3321] - Thrift can't be added as a subdirectory of another CMake-based project
870 * [THRIFT-3314] - Dots in file names of includes causes dots in javascript variable names
871 * [THRIFT-3307] - Segfault in Ruby serializer
872 * [THRIFT-3309] - Missing TConstant.php in /lib/php/Makefile.am
873 * [THRIFT-3810] - unresolved external symbol public: virtual void __cdecl apache::thrift::server::TServerFramework::serve(void)
874 * [THRIFT-3736] - C++ library build fails if OpenSSL does not surrpot SSLv3
875 * [THRIFT-3878] - Compile error in TSSLSocket.cpp with new OpenSSL [CRYPTO_num_locks]
876 * [THRIFT-3949] - missing make dist entry for compiler/cpp/test
877 * [THRIFT-449] - The wire format of the JSON Protocol may not always be valid JSON if it contains non-UTF8 encoded strings
878 * [THRIFT-162] - Thrift structures are unhashable, preventing them from being used as set elements
879 * [THRIFT-3961] - TConnectedClient does not terminate the connection to the client if an exception while processing the received message occures.
880 * [THRIFT-3881] - Travis CI builds are failing due to docker failures (three retries, and gives up)
881 * [THRIFT-3937] - Cannot compile 0.10.0 development tip with gcc-4.6.x
882 * [THRIFT-3964] - Unsupported mechanism type ????? due to dependency on default OS-dependent charset
883 * [THRIFT-3038] - Use of volatile in cpp library
884 * [THRIFT-3301] - Java generated code uses imports that can lead to class name collisions with IDL defined types
885 * [THRIFT-3348] - PHP TCompactProtocol bool&int64 readvalue bug
886 * [THRIFT-3955] - TThreadedServer Memory Leak
887 * [THRIFT-3829] - Thrift does not install Python Libraries if Twisted is not installed
888 * [THRIFT-3932] - C++ ThreadManager has a rare termination race
889 * [THRIFT-3828] - cmake fails when Boost_INCLUDE_DIRS (and other variables passed to include_directories()) is empty
890 * [THRIFT-3958] - CMake WITH_MT option for windows static runtime linking does not support the cmake build type RelWithDebInfo
891 * [THRIFT-3957] - TConnectedClient does not disconnect from clients when their timeout is reached.
892 * [THRIFT-3953] - TSSLSocket::close should handle exceptions from waitForEvent because it is called by the destructor.
893 * [THRIFT-3977] - PHP extension creates undefined values when deserializing sets
894 * [THRIFT-3947] - sockaddr type isn't always large enough for the return of getsockname
895 * [THRIFT-2755] - ThreadSanitizer reports data race in ThreadManager::Impl::addWorker
896 * [THRIFT-3948] - errno is not the correct method of getting the error in windows
897 * [THRIFT-4008] - broken ci due to upstream dependency versioning break
898 * [THRIFT-3999] - Fix Debian & Ubuntu package dependencies
899 * [THRIFT-3886] - PHP cross test client returns 0 even when failing
900 * [THRIFT-3997] - building thrift libs does not support new openssl
901
902## Documentation
903 * [THRIFT-3867] - Specify BinaryProtocol and CompactProtocol
904
905## Epic
906 * [THRIFT-3049] - As an iOS developer, I want a generator and library that produces Swift code
907 * [THRIFT-2336] - UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
908
909## Improvement
910 * [THRIFT-1867] - Python client/server should support client-side certificates.
911 * [THRIFT-1313] - c_glib compact support
912 * [THRIFT-1385] - make install doesn't install java library in the setted folder
913 * [THRIFT-1437] - Update RPM spec
914 * [THRIFT-847] - Test Framework harmonization across all languages
915 * [THRIFT-819] - add Enumeration for protocol, transport and server types
916 * [THRIFT-3927] - Emit an error instead of throw an error in the async callback
917 * [THRIFT-3931] - TSimpleServer: If process request encounter UNKNOWN_METHOD, don't close transport.
918 * [THRIFT-3934] - Automatically resolve OpenSSL binary version on Windows CI
919 * [THRIFT-3918] - Run subset of make cross
920 * [THRIFT-3908] - Remove redundant dependencies from Dockerfile
921 * [THRIFT-3907] - Skip Docker image build on CI when unchanged
922 * [THRIFT-3868] - Java struct equals should do identity check before field comparison
923 * [THRIFT-3849] - Port Go serializer and deserializer to dart
924 * [THRIFT-2989] - Complete CMake build for Apache Thrift
925 * [THRIFT-2980] - ThriftMemoryBuffer doesn't have a constructor option to take an existing buffer
926 * [THRIFT-2856] - refactor erlang basic transports and unify interfaces
927 * [THRIFT-2877] - Optimize generated hashCode
928 * [THRIFT-2869] - JSON: run schema validation from tests
929 * [THRIFT-3112] - [Java] AsyncMethodCallback should be typed in generated AsyncIface
930 * [THRIFT-3263] - PHP jsonSerialize() should cast scalar types
931 * [THRIFT-2905] - Cocoa compiler should have option to produce "modern" Objective-C
932 * [THRIFT-2821] - Enable the use of custom HTTP-Header in the Transport
933 * [THRIFT-2093] - added the ability to set compression level in C++ zlib transport
934 * [THRIFT-2089] - Compiler ignores duplicate typenames
935 * [THRIFT-2056] - Moved all #include config.h statements to #include <thrift/config.h>
936 * [THRIFT-2031] - Make SO_KEEPALIVE configurable for C++ lib
937 * [THRIFT-2021] - Improve large binary protocol string performance
938 * [THRIFT-2028] - Cleanup threading headers / libraries
939 * [THRIFT-2014] - Change C++ lib includes to use <namespace/> style throughout
940 * [THRIFT-2312] - travis.yml: build everything
941 * [THRIFT-1915] - Multiplexing Services
942 * [THRIFT-1736] - Visual Studio top level project files within msvc
943 * [THRIFT-1735] - integrate tutorial into regular build
944 * [THRIFT-1533] - Make TTransport should be Closeable
945 * [THRIFT-35] - Move language tests into their appropriate library directory
946 * [THRIFT-1079] - Support i64 in AS3
947 * [THRIFT-1108] - SSL support for the Ruby library
948 * [THRIFT-3856] - update debian package deependencies
949 * [THRIFT-3833] - haxe http server implementation (by embeding into php web server)
950 * [THRIFT-3839] - Performance issue with big message deserialization using php extension
951 * [THRIFT-3820] - Erlang: Detect OTP >= 18 to use new time correction
952 * [THRIFT-3816] - Reduce docker build duration on Travis-CI
953 * [THRIFT-3815] - Put appveyor dependency versions to one place
954 * [THRIFT-3788] - Compatibility improvements and Win64 support
955 * [THRIFT-3792] - Timeouts for anonymous pipes should be configurable
956 * [THRIFT-3794] - Split Delphi application, protocol and transport exception subtypes into separate exceptions
957 * [THRIFT-3774] - The generated code should have exception_names meta info
958 * [THRIFT-3762] - Fix build warnings for deprecated Thrift "byte" fields
959 * [THRIFT-3756] - Improve requiredness documentation
960 * [THRIFT-3761] - Add debian package for Python3
961 * [THRIFT-3742] - haxe php cli support
962 * [THRIFT-3733] - Socket timeout improvements
963 * [THRIFT-3728] - http transport for thrift-lua
964 * [THRIFT-3905] - Dart compiler does not initialize bool, int, and double properties
965 * [THRIFT-3911] - Loosen Ruby dev dependency version requirements
966 * [THRIFT-3906] - Run C# tests with make check
967 * [THRIFT-3900] - Add Python SSL flags
968 * [THRIFT-3897] - Provide meaningful exception type based on WebExceptionStatus in case of timeout
969 * [THRIFT-3808] - Missing `DOUBLE` in thrift type enumeration
970 * [THRIFT-3803] - Remove "file" attribute from XML generator
971 * [THRIFT-3660] - Add V4 mapped address to test client cert's altname
972 * [THRIFT-3661] - Use https to download meck in erlang test build
973 * [THRIFT-3659] - Check configure result of CMake on CI
974 * [THRIFT-3667] - Add TLS SNI support to clients
975 * [THRIFT-3651] - Make backports.match_hostname and ipaddress optional
976 * [THRIFT-3666] - Build D tutorial as part of Autotools build
977 * [THRIFT-3665] - Add D libevent and OpenSSL to docker images
978 * [THRIFT-3664] - Remove md5.c
979 * [THRIFT-3662] - Add Haskell to debian docker image
980 * [THRIFT-3711] - Add D to cross language test
981 * [THRIFT-3691] - Run flake8 Python style check on Travis-CI
982 * [THRIFT-3692] - (Re)enable Appveyor C++ and Python build
983 * [THRIFT-3677] - Improve CMake Java build
984 * [THRIFT-3679] - Add stdout log to testBinary in Java test server
985 * [THRIFT-3718] - Reduce size of docker image for build environment
986 * [THRIFT-3698] - [Travis-CI] Introduce retry to apt commands
987 * [THRIFT-3127] - switch -recurse to --recurse and reserve -r
988 * [THRIFT-3087] - Pass on errors like "connection closed"
989 * [THRIFT-3240] - Thrift Python client should support subjectAltName and wildcard certs in TSSLSocket
990 * [THRIFT-3213] - make cross should indicate when it skips a known failing test
991 * [THRIFT-3208] - Fix Visual Studio solution build failure due to missing source
992 * [THRIFT-3186] - Add TServerHTTP to Go library
993 * [THRIFT-2342] - Add __FILE__ and __LINE__ to Thrift C++ excpetions
994 * [THRIFT-3372] - Add dart generator to Visual Studio project
995 * [THRIFT-3366] - ThriftTest to implement standard return values
996 * [THRIFT-3402] - Provide a perl Unix Socket implementation
997 * [THRIFT-3361] - Improve C# library
998 * [THRIFT-3393] - Introduce i8 to provide consistent set of Thrift IDL integer types
999 * [THRIFT-3339] - Support for database/sql
1000 * [THRIFT-3565] - C++: T[Async]Processor::getEventHandler() should be declared as const member functions
1001 * [THRIFT-3563] - C++/Qt: removed usage of macro QT_PREPEND_NAMESPACE as it isn't consequently used for all references to Qt types.
1002 * [THRIFT-3562] - Removed unused TAsyncProcessor::getAsyncServer()
1003 * [THRIFT-3561] - C++/Qt: make use of Q_DISABLE_COPY() to get rid of copy ctor and assignment operator
1004 * [THRIFT-3556] - c_glib file descriptor transport
1005 * [THRIFT-3544] - Make cross test fail when server process died unexpectedly
1006 * [THRIFT-3540] - Make python tutorial more in line with PEP8
1007 * [THRIFT-3535] - Dart generator argument to produce a file structure usable in parent library
1008 * [THRIFT-3505] - Enhance Python TSSLSocket
1009 * [THRIFT-3506] - Eliminate old style classes from library code
1010 * [THRIFT-3503] - Enable py:utf8string by default
1011 * [THRIFT-3499] - Add package_prefix to python generator
1012 * [THRIFT-3495] - Minor enhancements and fixes for cross test
1013 * [THRIFT-3486] - Java generated `getFieldValue` is incompatible with `setFieldValue` for binary values.
1014 * [THRIFT-3484] - Consolidate temporary buffers in Java's TCompactProtocol
1015 * [THRIFT-3516] - Add feature test for THeader TBinaryProtocol interop
1016 * [THRIFT-3515] - Python 2.6 compatibility and test on CI
1017 * [THRIFT-3514] - PHP 7 compatible version of binary protocol
1018 * [THRIFT-3469] - Docker: Debian support
1019 * [THRIFT-3416] - Retire old "xxx_namespace" declarations from the IDL
1020 * [THRIFT-3426] - Align autogen comment in XSD
1021 * [THRIFT-3424] - Add CMake android build option
1022 * [THRIFT-3439] - Run make cross using Python3 when available
1023 * [THRIFT-3440] - Python make check takes too much time
1024 * [THRIFT-3441] - Stabilize Travis-CI builds
1025 * [THRIFT-3431] - Avoid "schemes" HashMap lookups during struct reads/writes
1026 * [THRIFT-3432] - Add a TByteBuffer transport to the Java library
1027 * [THRIFT-3438] - Enable py:new_style by default
1028 * [THRIFT-3405] - Go THttpClient misuses http.Client objects
1029 * [THRIFT-3614] - Improve logging of test_sslsocket.py
1030 * [THRIFT-3647] - Fix php extension build warnings
1031 * [THRIFT-3642] - Speed up cross test runner
1032 * [THRIFT-3637] - Implement compact protocol for dart
1033 * [THRIFT-3613] - Port Python C extension to Python 3
1034 * [THRIFT-3612] - Add Python C extension for compact protocol
1035 * [THRIFT-3611] - Add --regex filter to cross test runner
1036 * [THRIFT-3631] - JSON protocol implementation for Lua
1037 * [THRIFT-3609] - Remove or replace TestPortFixture.h
1038 * [THRIFT-3605] - Have the compiler complain about invalid arguments and options
1039 * [THRIFT-3596] - Better conformance to PEP8
1040 * [THRIFT-3585] - Compact protocol implementation for Lua
1041 * [THRIFT-3582] - Erlang libraries should have service metadata
1042 * [THRIFT-3579] - Introduce retry to make cross
1043 * [THRIFT-3306] - Java: TBinaryProtocol: Use 1 temp buffer instead of allocating 8
1044 * [THRIFT-3910] - Do not invoke pip as part of build process
1045 * [THRIFT-1857] - Python 3.X Support
1046 * [THRIFT-1944] - Binding to zero port
1047 * [THRIFT-3954] - Enable the usage of structs called "Object" in Java
1048 * [THRIFT-3981] - Enable analyzer strong mode in Dart library
1049 * [THRIFT-3998] - Document ability to add custom tags to thrift structs
1050 * [THRIFT-4006] - Add a removeEventListener method on TSocket
1051
1052## New Feature
1053 * [THRIFT-640] - Support deprecation
1054 * [THRIFT-948] - SSL socket support for PHP
1055 * [THRIFT-764] - add Support for Vala language
1056 * [THRIFT-3046] - Allow PSR4 class loading for generated classes (PHP)
1057 * [THRIFT-2113] - Erlang SSL Socket Support
1058 * [THRIFT-1482] - Unix domain socket support under PHP
1059 * [THRIFT-519] - Support collections of types without having to explicitly define it
1060 * [THRIFT-468] - Rack Middleware Application for Rails
1061 * [THRIFT-1708] - Add event handlers for processor events
1062 * [THRIFT-3834] - Erlang namespacing and exception metadata
1063 * [THRIFT-2510] - Implement TNonblockingServer's ability to listen on unix domain sockets
1064 * [THRIFT-3397] - Implement TProcessorFactory in C# to enable per-client processors
1065 * [THRIFT-3523] - XML Generator
1066 * [THRIFT-3510] - Add HttpTaskAsyncHandler implementation
1067 * [THRIFT-3318] - PHP: SimpleJSONProtocol Implementation
1068 * [THRIFT-3299] - Dart language bindings in Thrift
1069 * [THRIFT-2835] - Add possibility to distribute generators separately from thrift core, and load them dynamically
1070 * [THRIFT-184] - Add OSGi Manifest headers to the libthrift java library to be able to use Thrift in the OSGi runtime
1071 * [THRIFT-141] - If a required field is not present on serialization, throw an exception
1072 * [THRIFT-1891] - Add Windows ALPC transport which is right counterpart of Unix domain sockets
1073
1074## Question
1075 * [THRIFT-1808] - The Thrift struct should be considered self-contained?
1076 * [THRIFT-2895] - Tutorial cpp
1077 * [THRIFT-3860] - Elephant-bird application Test fails for Thrift
1078 * [THRIFT-3811] - HTTPS Support for C++ applications
1079 * [THRIFT-3509] - "make check" error
1080
1081## Story
1082 * [THRIFT-3452] - .travis.yml: Migrating from legacy to container-based infrastructure
1083
1084## Sub-task
1085 * [THRIFT-1811] - ruby tutorial as part of the regular build
1086 * [THRIFT-2779] - PHP TJSONProtocol encode unicode into UCS-4LE which can't be parsed by other language bindings
1087 * [THRIFT-2110] - Erlang: Support for Multiplexing Services on any Transport, Protocol and Server
1088 * [THRIFT-3852] - A Travis-CI job fails with "write error"
1089 * [THRIFT-3740] - Fix haxelib.json classpath
1090 * [THRIFT-3653] - incorrect union serialization
1091 * [THRIFT-3652] - incorrect serialization of optionals
1092 * [THRIFT-3655] - incorrect union serialization
1093 * [THRIFT-3654] - incorrect serialization of optionals
1094 * [THRIFT-3656] - incorrect serialization of optionals
1095 * [THRIFT-3699] - Fix integer limit symbol includes in Python C extension
1096 * [THRIFT-3693] - Fix include issue in C++ TSSLSocketInterruptTest on Windows
1097 * [THRIFT-3694] - [Windows] Disable tests of a few servers that are not supported
1098 * [THRIFT-3696] - Install pip to CentOS Docker images to fix Python builds
1099 * [THRIFT-3638] - Fix haxelib.json
1100 * [THRIFT-3251] - Add http transport for server to Go lib
1101 * [THRIFT-2424] - Recursive Types
1102 * [THRIFT-2423] - THeader
1103 * [THRIFT-2413] - Python: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1104 * [THRIFT-2409] - Java: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1105 * [THRIFT-2412] - D: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1106 * [THRIFT-2411] - C++: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1107 * [THRIFT-2410] - JavaMe: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1108 * [THRIFT-2668] - TestSuite: detailed result on passed tests by feature
1109 * [THRIFT-2659] - python Test Server fails when throwing TException
1110 * [THRIFT-3398] - Add CMake build for Haskell library and tests
1111 * [THRIFT-3396] - DART: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1112 * [THRIFT-3364] - Fix ruby binary field encoding in TJSONProtocol
1113 * [THRIFT-3381] - Fix for misc. codegen issues with THRIFT-2905
1114 * [THRIFT-3573] - No rule to make target `../../../test/c_glib/src/.deps/testthrifttest-thrift_test_handler.Po'.
1115 * [THRIFT-3572] - "Unable to determine the behavior of a signed right shift"
1116 * [THRIFT-3542] - Add length limit support to Java test server
1117 * [THRIFT-3537] - Remove the (now obsolete) csharp:asyncctp flag
1118 * [THRIFT-3532] - Add configurable string and container read size limit to Python protocols
1119 * [THRIFT-3531] - Create cross lang feature test for string and container read length limit
1120 * [THRIFT-3482] - Haskell JSON protocol does not encode binary field as Base64
1121 * [THRIFT-3425] - Minor fixes + simplification for CentOS Dockerfile
1122 * [THRIFT-3442] - Run CMake tests on Appveyor
1123 * [THRIFT-3409] - NodeJS binary field issues
1124 * [THRIFT-3621] - Fix lib/cpp/test/SecurityTest.cpp to use ephemeral ports
1125 * [THRIFT-3628] - Fix lib/cpp/test/TServerIntegrationTest.cpp to use ephemeral ports
1126 * [THRIFT-3625] - Kill unused #include "TestPortFixture.h" in lib/cpp/test/TServerTransportTest.cpp.
1127 * [THRIFT-3646] - Fix Python extension build warnings
1128 * [THRIFT-3626] - Fix lib/cpp/test/TSocketInterruptTest.cpp to use ephemeral ports.
1129 * [THRIFT-3624] - Fix lib/cpp/test/TServerSocketTest.cpp to use ephemeral ports
1130 * [THRIFT-3623] - Fix Fix cpp/lib/test/TSSLSocketInterruptTest.cpp to use ephemeral ports
1131 * [THRIFT-3592] - Add basic test client
1132 * [THRIFT-3980] - add TExtendedBinaryProtocol.java
1133
1134## Task
1135 * [THRIFT-1801] - Sync up TApplicationException codes across languages and thrift implementations
1136 * [THRIFT-1259] - Automate versioning
1137
1138## Test
1139 * [THRIFT-3400] - Add Erlang to cross test
1140 * [THRIFT-3504] - Fix FastbinaryTest.py
1141
1142## Wish
1143 * [THRIFT-3923] - Maybe remove Aereo from the "Powered by" list
1144 * [THRIFT-2149] - Add an option to disable the generation of default operators
1145
1146
1147
1148Thrift 0.9.3
1149--------------------------------------------------------------------------------
1150## Bug
1151 * [THRIFT-2441] - Cannot shutdown TThreadedServer when clients are still connected
1152 * [THRIFT-2465] - TBinaryProtocolT breaks if copied/moved
1153 * [THRIFT-2474] - thrift.h causes a compile failure
1154 * [THRIFT-2540] - Running configure from outside the source directory fails
1155 * [THRIFT-2598] - Add check for minimum Go version to configure.ac
1156 * [THRIFT-2647] - compiler-hs: don't decapitalize field names, do decapitalize argument bindings
1157 * [THRIFT-2773] - Generated Java code for 'oneway' methods is incorrect.
1158 * [THRIFT-2789] - TNonblockingServer leaks socket FD's under load
1159 * [THRIFT-2682] - TThreadedServer leaks per-thread memory
1160 * [THRIFT-2674] - JavaScript: declare Accept: and Content-Type: in request
1161 * [THRIFT-3078] - TNonblockingServerSocket's logger is not named after TNonblockingServerSocket
1162 * [THRIFT-3077] - C++ TFileTransport ignores return code from ftruncate
1163 * [THRIFT-3067] - C++ cppcheck performance related warnings
1164 * [THRIFT-3066] - C++ TDenseProtocol assert modifies instead of checks
1165 * [THRIFT-3071] - bootstrap.sh on Ubuntu 12.04 (Precise) automake error
1166 * [THRIFT-3069] - C++ TServerSocket leaks socket on fcntl get or set flags error
1167 * [THRIFT-3079] - TNonblockingServerSocket's logger is not named after TNonblockingServerSocket
1168 * [THRIFT-3080] - C++ TNonblockingServer connection leak while accept huge number connections.
1169 * [THRIFT-3086] - C++ Valgrind Error Cleanup
1170 * [THRIFT-3085] - thrift_reconnecting_client never try to reconnect
1171 * [THRIFT-3123] - Missing include in compiler/cpp/src/main.h breaks build in some environments
1172 * [THRIFT-3125] - Fix the list of exported headers in automake input
1173 * [THRIFT-3126] - PHP JSON serializer converts empty or int-indexed maps to lists
1174 * [THRIFT-3132] - Properly format date in Java @Generated annotations
1175 * [THRIFT-3137] - Travis build hangs after failure
1176 * [THRIFT-3138] - "make check" parallel execution is underministic
1177 * [THRIFT-3139] - JS library test is flaky
1178 * [THRIFT-3140] - ConcurrentModificationException is thrown by JavaScript test server
1179 * [THRIFT-3124] - Some signed/unsigned warnings while building compiler
1180 * [THRIFT-3128] - Go generated code produces name collisions between services
1181 * [THRIFT-3146] - Graphviz generates function name collisions between services
1182 * [THRIFT-3147] - Segfault while receiving data
1183 * [THRIFT-3148] - Markdown links to coding_standards are dead
1184 * [THRIFT-3090] - cmake build is broken on MacOSX
1185 * [THRIFT-3097] - cmake targets unconditionally depend on optional libraries
1186 * [THRIFT-3094] - master as of 2015-APR-13 fails -DBOOST_THREADS cmake build
1187 * [THRIFT-3099] - cmake build is broken on FreeBSD
1188 * [THRIFT-3089] - Assigning default ENUM values results in non-compilable java code if java namespace is not defined
1189 * [THRIFT-3093] - mingw compile fixes for c++ library 0.9.2
1190 * [THRIFT-3098] - Thrift does not pretty print binary typedefs the way it does binary fields
1191 * [THRIFT-3091] - c_glib service method should return result from handler method
1192 * [THRIFT-3088] - TThreadPoolServer with Sasl auth may leak CLOSE_WAIT socket
1193 * [THRIFT-3109] - Cross test log file cannot be browsed when served in HTTP server
1194 * [THRIFT-3113] - m4 C++11 macro issue
1195 * [THRIFT-3105] - C++ libthriftnb library on Windows build failure
1196 * [THRIFT-3115] - Uncompileable code due to name collision with predefined used types
1197 * [THRIFT-3117] - Java TSSLTransportFactory can't load certificates within JAR archive
1198 * [THRIFT-3102] - could not make check for Go Library
1199 * [THRIFT-3120] - Minor spelling errors and an outdated URL
1200 * [THRIFT-3121] - Librt does not exist on OS X
1201 * [THRIFT-3152] - Compiler error on Mac OSX (missing #include <cstdlib>)
1202 * [THRIFT-3162] - make fails for dmd 2.067
1203 * [THRIFT-3164] - Thrift C++ library SSL socket by default allows for unsecure SSLv3 negotiation
1204 * [THRIFT-3168] - Fix Maven POM
1205 * [THRIFT-3170] - Initialism code in the Go compiler causes chaos
1206 * [THRIFT-3169] - Do not export thrift.TestStruct and thrift.TestEnum in thrift Go library
1207 * [THRIFT-3191] - Perl compiler does not add support for unexpected exception handling
1208 * [THRIFT-3178] - glib C does not compile
1209 * [THRIFT-3189] - Perl ServerSocket should allow a specific interface to be listened to
1210 * [THRIFT-3252] - Missing TConcurrentClientSyncInfo.h in cpp Makefile, so doesn't install
1211 * [THRIFT-3255] - Thrift generator doesn't exclude 'package' keyword for thrift property names breaking java builds
1212 * [THRIFT-3260] - multiple warnings in c_glib tutorial
1213 * [THRIFT-3256] - Some D test timings are too aggressive for slow machines
1214 * [THRIFT-3257] - warning: extra tokens at end of #endif directive
1215 * [THRIFT-3184] - Thrift Go leaves file descriptors open
1216 * [THRIFT-3203] - DOAP - please fix "Ocaml" => "OCaml"
1217 * [THRIFT-3210] - (uncompileable) code generated for server events while are events not enabled
1218 * [THRIFT-3215] - TJSONProtocol '(c++) uses "throw new" to throw exceptions instead of "throw"
1219 * [THRIFT-3202] - Allow HSHAServer to configure min and max worker threads separately.
1220 * [THRIFT-3205] - TCompactProtocol return a wrong error when the io.EOF happens
1221 * [THRIFT-3209] - LGPL mentioned in license file
1222 * [THRIFT-3197] - keepAliveTime is hard coded as 60 sec in TThreadPoolServer
1223 * [THRIFT-3196] - Misspelling in lua TBinaryProtocol (stirctWrite => strictWrite)
1224 * [THRIFT-3198] - Allow construction of TTransportFactory with a specified maxLength
1225 * [THRIFT-3192] - Go import paths changed in 1.4, and expired June 1
1226 * [THRIFT-3271] - Could not find or load main class configtest_ax_javac_and_java on some non-english systems
1227 * [THRIFT-3273] - c_glib: Generated code tries to convert between function and void pointers
1228 * [THRIFT-3264] - Fix Erlang 16 namespaced types
1229 * [THRIFT-3270] - reusing TNonblockingServer::TConnection cause dirty TSocket
1230 * [THRIFT-3267] - c_glib: "Critical" failure during unit tests
1231 * [THRIFT-3277] - THttpClient leaks connections if it's used for multiple requests
1232 * [THRIFT-3278] - NodeJS: Fix exception stack traces and names
1233 * [THRIFT-3279] - Fix a bug in retry_max_delay (NodeJS)
1234 * [THRIFT-3280] - Initialize retry variables on construction
1235 * [THRIFT-3283] - c_glib: Tutorial server always exits with warning
1236 * [THRIFT-3284] - c_glib: Empty service produces unused-variable warning
1237 * [THRIFT-1925] - c_glib generated code does not compile
1238 * [THRIFT-1849] - after transport->open() opens isOpen returns true and next open() goes thru when it shall not
1239 * [THRIFT-1866] - java compiler generates non-compiling code with const's defined in a thrift when name includes non-identifier chars
1240 * [THRIFT-1938] - FunctionRunner.h -- uses wrong path for Thread.h when installed
1241 * [THRIFT-1844] - Password string not cleared
1242 * [THRIFT-2004] - Thrift::Union violates :== method contract and crashes
1243 * [THRIFT-2073] - Thrift C++ THttpClient error: cannot refill buffer
1244 * [THRIFT-2127] - Autoconf scripting does not properly account for cross-compile
1245 * [THRIFT-2180] - Integer types issues in Cocoa lib on ARM64
1246 * [THRIFT-2189] - Go needs "isset" to fully support "union" type (and optionals)
1247 * [THRIFT-2192] - autotools on Redhat based systems
1248 * [THRIFT-2546] - cross language tests fails at 'TestMultiException' when using nodejs server
1249 * [THRIFT-2547] - nodejs servers and clients fails to connect with cpp using compact protocol
1250 * [THRIFT-2548] - Nodejs servers and clients does not work properly with -ssl
1251 * [THRIFT-1471] - toString() does not print ByteBuffer values when nested in a List
1252 * [THRIFT-1201] - getaddrinfo resource leak
1253 * [THRIFT-615] - TThreadPoolServer doesn't call task_done after pulling tasks from it's clients queue
1254 * [THRIFT-162] - Thrift structures are unhashable, preventing them from being used as set elements
1255 * [THRIFT-810] - Crashed client on TSocket::close under loads
1256 * [THRIFT-557] - charset problem with file Autogenerated by Thrift
1257 * [THRIFT-233] - IDL doesn't support negative hex literals
1258 * [THRIFT-1649] - contrib/zeromq does not build in 0.8.0
1259 * [THRIFT-1642] - Miscalculation lead to throw unexpected "TTransportException::TIMED_OUT"(or called "EAGAIN (timed out)") exception
1260 * [THRIFT-1587] - TSocket::setRecvTimeout error
1261 * [THRIFT-1248] - pointer subtraction in TMemoryBuffer relies on undefined behavior
1262 * [THRIFT-1774] - Sasl Transport client would hang when trying to connect non-sasl transport server
1263 * [THRIFT-1754] - RangeError in buffer handling
1264 * [THRIFT-1618] - static structMap in FieldMetaData is not thread safe and can lead to deadlocks
1265 * [THRIFT-2335] - thrift incompatibility with py:tornado as server, java as client
1266 * [THRIFT-2803] - TCP_DEFER_ACCEPT not supported with domain sockets
1267 * [THRIFT-2799] - Build Problem(s): ld: library not found for -l:libboost_unit_test_framework.a
1268 * [THRIFT-2801] - C++ test suite compilation warnings
1269 * [THRIFT-2802] - C++ tutorial compilation warnings
1270 * [THRIFT-2795] - thrift_binary_protocol.c: 'dereferencing type-punned pointer will break strict-aliasing rules'
1271 * [THRIFT-2817] - TSimpleJSONProtocol reads beyond end of message
1272 * [THRIFT-2826] - html:standalone sometimes ignored
1273 * [THRIFT-2829] - Support haxelib installation via github
1274 * [THRIFT-2828] - slightly wrong help screen indent
1275 * [THRIFT-2831] - Removes dead code in web_server.js introduced in THRIFT-2819
1276 * [THRIFT-2823] - All JS-tests are failing when run with grunt test
1277 * [THRIFT-2827] - Thrift 0.9.2 fails to compile on Yosemite due to tr1/functional include in ProcessorTest.cpp
1278 * [THRIFT-2843] - Automake configure.ac has possible typo related to Java
1279 * [THRIFT-2813] - multiple haxe library fixes/improvements
1280 * [THRIFT-2825] - Supplying unicode to python Thrift client can cause next request arguments to get overwritten
1281 * [THRIFT-2840] - Cabal file points to LICENSE file outside the path of the Haskell project.
1282 * [THRIFT-2818] - Trailing commas in array
1283 * [THRIFT-2830] - Clean up ant warnings in tutorial dir
1284 * [THRIFT-2842] - Erlang thrift client has infinite timeout
1285 * [THRIFT-2810] - Do not leave the underlying ServerSocket open if construction of TServerSocket fails
1286 * [THRIFT-2812] - Go server adding redundant buffering layer
1287 * [THRIFT-2839] - TFramedTransport read bug
1288 * [THRIFT-2844] - Nodejs support broken when running under Browserify
1289 * [THRIFT-2814] - args/result classes not found when no namespace is set
1290 * [THRIFT-2847] - function IfValue() is a duplicate of System.StrUtils.IfThen
1291 * [THRIFT-2848] - certain Delphi tests do not build if TypeRegistry is used
1292 * [THRIFT-2854] - Go Struct writer and reader looses important error information
1293 * [THRIFT-2858] - Enable header field case insensitive match in THttpServer
1294 * [THRIFT-2857] - C# generator creates uncompilable code for struct constants
1295 * [THRIFT-2860] - Delphi server closes connection on unexpected exceptions
1296 * [THRIFT-2868] - Enhance error handling in the Go client
1297 * [THRIFT-2879] - TMemoryBuffer: using lua string in wrong way
1298 * [THRIFT-2851] - Remove strange public Peek() from Go transports
1299 * [THRIFT-2852] - Better Open/IsOpen/Close behavior for StreamTransport.
1300 * [THRIFT-2871] - Missing semicolon in thrift.js
1301 * [THRIFT-2872] - ThreadManager deadlock for task expiration
1302 * [THRIFT-2881] - Handle errors from Accept() correctly
1303 * [THRIFT-2849] - Spell errors reported by codespell tool
1304 * [THRIFT-2870] - C++ TJSONProtocol using locale dependent formatting
1305 * [THRIFT-2882] - Lua Generator: using string.len funtion to get struct(map,list,set) size
1306 * [THRIFT-2864] - JSON generator missing from Visual Studio build project
1307 * [THRIFT-2878] - Go validation support of required fields
1308 * [THRIFT-2873] - TPipe and TPipeServer don't compile on Windows with UNICODE enabled
1309 * [THRIFT-2888] - import of <limits> is missing in JSON generator
1310 * [THRIFT-2900] - Python THttpClient does not reset socket timeout on exception
1311 * [THRIFT-2907] - 'ntohll' macro redefined
1312 * [THRIFT-2884] - Map does not serialize correctly for JSON protocol in Go library
1313 * [THRIFT-2887] - --with-openssl configure flag is ignored
1314 * [THRIFT-2894] - PHP json serializer skips maps with int/bool keys
1315 * [THRIFT-2904] - json_protocol_test.go fails
1316 * [THRIFT-2906] - library not found for -l:libboost_unit_test_framework.a
1317 * [THRIFT-2890] - binary data may lose bytes with JSON transport under specific circumstances
1318 * [THRIFT-2891] - binary data may cause a failure with JSON transport under specific circumstances
1319 * [THRIFT-2901] - Fix for generated TypeScript functions + indentation of JavaScript maps
1320 * [THRIFT-2916] - make check fails for D language
1321 * [THRIFT-2918] - Race condition in Python TProcessPoolServer test
1322 * [THRIFT-2920] - Erlang Thrift test uses wrong IDL file
1323 * [THRIFT-2922] - $TRIAL is used with Python tests but not tested accordingly
1324 * [THRIFT-2912] - Autotool build for C++ Qt library is invalid
1325 * [THRIFT-2914] - explicit dependency to Lua5.2 fails on some systems
1326 * [THRIFT-2910] - libevent is not really optional
1327 * [THRIFT-2911] - fix c++ version zeromq transport, the old version cannot work
1328 * [THRIFT-2915] - Lua generator missing from Visual Studio build project
1329 * [THRIFT-2917] - "make clean" breaks test/c_glib
1330 * [THRIFT-2919] - Haxe test server timeout too large
1331 * [THRIFT-2923] - JavaScript client assumes a message being written
1332 * [THRIFT-2924] - TNonblockingServer crashes when user-provided event_base is used
1333 * [THRIFT-2925] - CMake build does not work with OpenSSL nor anything installed in non-system location
1334 * [THRIFT-2931] - Access to undeclared static property: Thrift\Protocol\TProtocol::$TBINARYPROTOCOLACCELERATED
1335 * [THRIFT-2893] - CMake build fails with boost thread or std thread
1336 * [THRIFT-2902] - Generated c_glib code does not compile with clang
1337 * [THRIFT-2903] - Qt4 library built with CMake does not work
1338 * [THRIFT-2942] - CSharp generate invalid code for property named read or write
1339 * [THRIFT-2932] - Node.js Thrift connection libraries throw Exceptions into event emitter
1340 * [THRIFT-2933] - v0.9.2: doubles encoded in node with compact protocol cannot be decoded by python
1341 * [THRIFT-2934] - createServer signature mismatch
1342 * [THRIFT-2981] - IDL with no namespace produces unparsable PHP
1343 * [THRIFT-2999] - Addition of .gitattributes text auto in THRIFT-2724 causes modified files on checkout
1344 * [THRIFT-2949] - typo in compiler/cpp/README.md
1345 * [THRIFT-2957] - warning: source file %s is in a subdirectory, but option 'subdir-objects' is disabled
1346 * [THRIFT-2953] - TNamedPipeServerTransport is not Stop()able
1347 * [THRIFT-2962] - Docker Thrift env for development and testing
1348 * [THRIFT-2971] - C++ test and tutorial parallel build is unstable
1349 * [THRIFT-2972] - Missing backslash in lib/cpp/test/Makefile.am
1350 * [THRIFT-2951] - Fix Erlang name conflict test
1351 * [THRIFT-2955] - Using list of typedefs does not compile on Go
1352 * [THRIFT-2960] - namespace regression for Ruby
1353 * [THRIFT-2959] - nodejs: fix binary unit tests
1354 * [THRIFT-2966] - nodejs: Fix bad references to TProtocolException and TProtocolExceptionType
1355 * [THRIFT-2970] - grunt-jsdoc fails due to dependency issues
1356 * [THRIFT-3001] - C# Equals fails for binary fields (byte[])
1357 * [THRIFT-3003] - Missing LICENSE file prevents package from being installed
1358 * [THRIFT-3008] - Node.js server does not fully support exception
1359 * [THRIFT-3007] - Travis build is broken because of directory conflict
1360 * [THRIFT-3009] - TSSLSocket does not use the correct hostname (breaks certificate checks)
1361 * [THRIFT-3011] - C# test server testException() not implemented according to specs
1362 * [THRIFT-3012] - Timing problems in NamedPipe implementation due to unnecessary open/close
1363 * [THRIFT-3019] - Golang generator missing docstring for structs
1364 * [THRIFT-3021] - Service remote tool does not import stub package with package prefix
1365 * [THRIFT-3026] - TMultiplexedProcessor does not have a constructor
1366 * [THRIFT-3028] - Regression caused by THRIFT-2180
1367 * [THRIFT-3017] - order of map key/value types incorrect for one CTOR
1368 * [THRIFT-3020] - Cannot compile thrift as C++03
1369 * [THRIFT-3024] - User-Agent "BattleNet" used in some Thrift library files
1370 * [THRIFT-3047] - Uneven calls to indent_up and indent_down in Cocoa generator
1371 * [THRIFT-3048] - NodeJS decoding of I64 is inconsistent across protocols
1372 * [THRIFT-3043] - go compiler generator uses non C++98 code
1373 * [THRIFT-3044] - Docker README.md paths to Dockerfiles are incorrect
1374 * [THRIFT-3040] - bower.json wrong "main" path
1375 * [THRIFT-3051] - Go Thrift generator creates bad go code
1376 * [THRIFT-3057] - Java compiler build is broken
1377 * [THRIFT-3061] - C++ TSSLSocket shutdown delay/vulnerability
1378 * [THRIFT-3062] - C++ TServerSocket invalid port number (over 999999) causes stack corruption
1379 * [THRIFT-3065] - Update libthrift dependencies (slf4j, httpcore, httpclient)
1380 * [THRIFT-3244] - TypeScript: fix namespace of included types
1381 * [THRIFT-3246] - Reduce the number of trivial warnings in Windows C++ CMake builds
1382 * [THRIFT-3224] - Fix TNamedPipeServer unpredictable behavior on accept
1383 * [THRIFT-3230] - Python compiler generates wrong code if there is function throwing a typedef of exception with another namespace
1384 * [THRIFT-3236] - MaxSkipDepth never checked
1385 * [THRIFT-3239] - Limit recursion depth
1386 * [THRIFT-3241] - fatal error: runtime: cannot map pages in arena address space
1387 * [THRIFT-3242] - OSGi Import-Package directive is missing the Apache HTTP packages
1388 * [THRIFT-3234] - Limit recursion depth
1389 * [THRIFT-3222] - TypeScript: Generated Enums are quoted
1390 * [THRIFT-3229] - unexpected Timeout exception when desired bytes are only partially available
1391 * [THRIFT-3231] - CPP: Limit recursion depth to 64
1392 * [THRIFT-3235] - Limit recursion depth
1393 * [THRIFT-3175] - fastbinary.c python deserialize can cause huge allocations from garbage
1394 * [THRIFT-3176] - Union incorrectly implements ==
1395 * [THRIFT-3177] - Fails to run rake test
1396 * [THRIFT-3180] - lua plugin: framed transport do not work
1397 * [THRIFT-3179] - lua plugin cant connect to remote server because function l_socket_create_and_connect always bind socket to localhost
1398 * [THRIFT-3248] - TypeScript: additional comma in method signature without parameters
1399 * [THRIFT-3302] - Go JSON protocol should encode Thrift byte type as signed integer string
1400 * [THRIFT-3297] - c_glib: an abstract base class is not generated
1401 * [THRIFT-3294] - TZlibTransport for Java does not write data correctly
1402 * [THRIFT-3296] - Go cross test does not conform to spec
1403 * [THRIFT-3295] - C# library does not build on Mono 4.0.2.5 or later
1404 * [THRIFT-3293] - JavaScript: null values turn into empty structs in constructor
1405 * [THRIFT-3310] - lib/erl/README.md has incorrect formatting
1406 * [THRIFT-3319] - CSharp tutorial will not build using the *.sln
1407 * [THRIFT-3335] - Ruby server does not handle processor exception
1408 * [THRIFT-3338] - Stray underscore in generated go when service name starts with "New"
1409 * [THRIFT-3324] - Update Go Docs for pulling all packages
1410 * [THRIFT-3345] - Clients blocked indefinitely when a java.lang.Error is thrown
1411 * [THRIFT-3332] - make dist fails on clean build
1412 * [THRIFT-3326] - Tests do not compile under *BSD
1413 * [THRIFT-3334] - Markdown notation of protocol spec is malformed
1414 * [THRIFT-3331] - warning: ‘etype’ may be used uninitialized in this function
1415 * [THRIFT-3349] - Python server does not handle processor exception
1416 * [THRIFT-3343] - Fix haskell README
1417 * [THRIFT-3340] - Python: enable json tests again
1418 * [THRIFT-3311] - Top level README.md has incorrect formmating
1419 * [THRIFT-2936] - Minor memory leak in SSL
1420 * [THRIFT-3290] - Using from in variable names causes the generated Python code to have errors
1421 * [THRIFT-3225] - Fix TPipeServer unpredictable behavior on interrupt()
1422 * [THRIFT-3354] - Fix word-extraction substr bug in initialism code
1423 * [THRIFT-2006] - TBinaryProtocol message header call name length is not validated and can be used to core the server
1424 * [THRIFT-3329] - C++ library unit tests don't compile against the new boost-1.59 unit test framework
1425 * [THRIFT-2630] - windows7 64bit pc. ipv4 and ipv6 pc.can't use
1426 * [THRIFT-3336] - Thrift generated streaming operators added in 0.9.2 cannot be overridden
1427 * [THRIFT-2681] - Core of unwind_cleanup
1428 * [THRIFT-3317] - cpp namespace org.apache issue appears in 0.9
1429
1430## Documentation
1431 * [THRIFT-3286] - Apache Ant is a necessary dependency
1432
1433## Improvement
1434 * [THRIFT-227] - Byte[] in collections aren't pretty printed like regular binary fields
1435 * [THRIFT-2744] - Vagrantfile for Centos 6.5
1436 * [THRIFT-2644] - Haxe support
1437 * [THRIFT-2756] - register Media Type @ IANA
1438 * [THRIFT-3076] - Compatibility with Haxe 3.2.0
1439 * [THRIFT-3081] - C++ Consolidate client processing loops in TServers
1440 * [THRIFT-3083] - C++ Consolidate server processing loops in TSimpleServer, TThreadedServer, TThreadPoolServer
1441 * [THRIFT-3084] - C++ add concurrent client limit to threaded servers
1442 * [THRIFT-3074] - Add compiler/cpp/lex.yythriftl.cc to gitignore.
1443 * [THRIFT-3134] - Remove use of deprecated "phantom.args"
1444 * [THRIFT-3133] - Allow "make cross" and "make precross" to run without building all languages
1445 * [THRIFT-3142] - Make JavaScript use downloaded libraries
1446 * [THRIFT-3141] - Improve logging of JavaScript test
1447 * [THRIFT-3144] - Proposal: make String representation of enums in generated go code less verbose
1448 * [THRIFT-3130] - Remove the last vestiges of THRIFT_OVERLOAD_IF from THRIFT-1316
1449 * [THRIFT-3131] - Consolidate suggested import path for go thrift library to git.apache.org in docs and code
1450 * [THRIFT-3092] - Generated Haskell types should derive Generic
1451 * [THRIFT-3110] - Print error log after cross test failures on Travis
1452 * [THRIFT-3114] - Using local temp variables to not pollute the global table
1453 * [THRIFT-3106] - CMake summary should give more information why a library is set to off
1454 * [THRIFT-3119] - Java's TThreadedSelectorServer has indistinguishable log messages in run()
1455 * [THRIFT-3122] - Javascript struct constructor should properly initialize struct and container members from plain js arguments
1456 * [THRIFT-3151] - Fix links to git-wip* - should be git.apache.org
1457 * [THRIFT-3167] - Windows build from source instructions need to be revised
1458 * [THRIFT-3155] - move contrib/mingw32-toolchain.cmake to build/cmake/
1459 * [THRIFT-3160] - Make generated go enums implement TextMarshaller and TextUnmarshaller interfaces
1460 * [THRIFT-3150] - Add an option to thrift go generator to make Read and Write methods private
1461 * [THRIFT-3149] - Make ReadFieldN methods in generated Go code private
1462 * [THRIFT-3172] - Add tutorial to Thrift web site
1463 * [THRIFT-3214] - Add Erlang option for using maps instead of dicts
1464 * [THRIFT-3201] - Capture github test artifacts for failed builds
1465 * [THRIFT-3266] - c_glib: Multiple compiler warnings building unit tests
1466 * [THRIFT-3285] - c_glib: Build library with all warnings enabled, no warnings generated
1467 * [THRIFT-1954] - Allow for a separate connection timeout value
1468 * [THRIFT-2098] - Add support for Qt5+
1469 * [THRIFT-2199] - Remove Dense protocol (was: move to Contrib)
1470 * [THRIFT-406] - C++ Test suite cleanup
1471 * [THRIFT-902] - socket and connect timeout in TSocket should be distinguished
1472 * [THRIFT-388] - Use a separate wire format for async calls
1473 * [THRIFT-727] - support native C++ language specific exception message
1474 * [THRIFT-1784] - pep-3110 compliance for exception handling
1475 * [THRIFT-1025] - C++ ServerSocket should inherit from Socket with the necessary Ctor to listen on connections from a specific host
1476 * [THRIFT-2269] - Can deploy libthrift-source.jar to maven center repository
1477 * [THRIFT-2804] - Pull an interface out of TBaseAsyncProcessor
1478 * [THRIFT-2806] - more whitespace fixups
1479 * [THRIFT-2811] - Make remote socket address accessible
1480 * [THRIFT-2809] - .gitignore update for compiler's visual project
1481 * [THRIFT-2846] - Expose ciphers parameter from ssl.wrap_socket()
1482 * [THRIFT-2859] - JSON generator: output complete descriptors
1483 * [THRIFT-2861] - add buffered transport
1484 * [THRIFT-2865] - Test case for Go: SeqId out of sequence
1485 * [THRIFT-2866] - Go generator source code is hard to read and maintain
1486 * [THRIFT-2880] - Read the network address from the listener if available.
1487 * [THRIFT-2875] - Typo in TDenseProtocol.h comment
1488 * [THRIFT-2874] - TBinaryProtocol member variable "string_buf_" is never used.
1489 * [THRIFT-2855] - Move contributing.md to the root of the repository
1490 * [THRIFT-2862] - Enable RTTI and/or build macros for generated code
1491 * [THRIFT-2876] - Add test for THRIFT-2526 Assignment operators and copy constructors in c++ don't copy the __isset struct
1492 * [THRIFT-2897] - Generate -isEqual: and -hash methods
1493 * [THRIFT-2909] - Improve travis build
1494 * [THRIFT-2921] - Make Erlang impl ready for OTP 18 release (dict/0 and set/0 are deprecated)
1495 * [THRIFT-2928] - Rename the erlang test_server module
1496 * [THRIFT-2940] - Allow installing Thrift from git as NPM module by providing package.json in top level directory
1497 * [THRIFT-2937] - Allow setting a maximum frame size in TFramedTransport
1498 * [THRIFT-2976] - nodejs: xhr and websocket support for browserify
1499 * [THRIFT-2996] - Test for Haxe 3.1.3 or better
1500 * [THRIFT-2969] - nodejs: DRY up library tests
1501 * [THRIFT-2973] - Update Haxe lib readme regarding Haxe 3.1.3
1502 * [THRIFT-2952] - Improve handling of Server.Stop()
1503 * [THRIFT-2964] - nodejs: move protocols and transports into separate files
1504 * [THRIFT-2963] - nodejs - add test coverage
1505 * [THRIFT-3006] - Attach 'omitempty' json tag for optional fields in Go
1506 * [THRIFT-3027] - Go compiler does not ensure common initialisms have consistent case
1507 * [THRIFT-3030] - TThreadedServer: Property for number of clientThreads
1508 * [THRIFT-3023] - Go compiler is a little overly conservative with names of attributes
1509 * [THRIFT-3018] - Compact protocol for Delphi
1510 * [THRIFT-3025] - Change pure Int constants into @enums (where possible)
1511 * [THRIFT-3031] - migrate "shouldStop" flag to TServer
1512 * [THRIFT-3022] - Compact protocol for Haxe
1513 * [THRIFT-3041] - Generate asynchronous clients for Cocoa
1514 * [THRIFT-3053] - Perl SSL Socket Support (Encryption)
1515 * [THRIFT-3247] - Generate a C++ thread-safe client
1516 * [THRIFT-3217] - Provide a little endian variant of the binary protocol in C++
1517 * [THRIFT-3223] - TypeScript: Add initial support for Enum Maps
1518 * [THRIFT-3220] - Option to suppress @Generated Annotation entirely
1519 * [THRIFT-3300] - Reimplement TZlibTransport in Java using streams
1520 * [THRIFT-3288] - c_glib: Build unit tests with all warnings enabled, no warnings generated
1521 * [THRIFT-3347] - Improve cross test servers and clients
1522 * [THRIFT-3342] - Improve ruby cross test client and server compatibility
1523 * [THRIFT-2296] - Add C++ Base class for service
1524 * [THRIFT-3337] - Add testBool method to cross tests
1525 * [THRIFT-3303] - Disable concurrent cabal jobs on Travis to avoid GHC crash
1526 * [THRIFT-2623] - Docker container for Thrift
1527 * [THRIFT-3298] - thrift endian converters may conflict with other libraries
1528 * [THRIFT-1559] - Provide memory pool for TBinaryProtocol to eliminate memory fragmentation
1529 * [THRIFT-424] - Steal ProtocolBuffers' VarInt implementation for C++
1530
1531## New Feature
1532 * [THRIFT-3070] - Add ability to set the LocalCertificateSelectionCallback
1533 * [THRIFT-1909] - Java: Add compiler flag to use the "option pattern" for optional fields
1534 * [THRIFT-2099] - Stop TThreadPoolServer with alive connections.
1535 * [THRIFT-123] - implement TZlibTransport in Java
1536 * [THRIFT-2368] - New option: reuse-objects for Java generator
1537 * [THRIFT-2836] - Optionally generate C++11 MoveConstructible types
1538 * [THRIFT-2824] - Flag to disable html escaping doctext
1539 * [THRIFT-2819] - Add WebsSocket client to node.js
1540 * [THRIFT-3050] - Client certificate authentication for non-http TLS in C#
1541 * [THRIFT-3292] - Implement TZlibTransport in Go
1542
1543## Question
1544 * [THRIFT-2583] - Thrift on xPC target (SpeedGoat)
1545 * [THRIFT-2592] - thrift server using c_glib
1546 * [THRIFT-2832] - c_glib: Handle string lists correctly
1547 * [THRIFT-3136] - thrift installation problem on mac
1548 * [THRIFT-3346] - c_glib: Tutorials example crashes saying Calculator.ping implementation returned FALSE but did not set an error
1549
1550## Sub-task
1551 * [THRIFT-2578] - Moving 'make cross' from test.sh to test.py
1552 * [THRIFT-2734] - Go coding standards
1553 * [THRIFT-2748] - Add Vagrantfile for Centos 6.5
1554 * [THRIFT-2753] - Misc. Haxe improvements
1555 * [THRIFT-2640] - Compact Protocol in Cocoa
1556 * [THRIFT-3262] - warning: overflow in implicit constant conversion in DenseProtoTest.cpp
1557 * [THRIFT-3194] - Can't build with go enabled. gomock SCC path incorrect.
1558 * [THRIFT-3275] - c_glib tutorial warnings in generated code
1559 * [THRIFT-1125] - Multiplexing support for the Ruby Library
1560 * [THRIFT-2807] - PHP Code Style
1561 * [THRIFT-2841] - Add comprehensive integration tests for the whole Go stack
1562 * [THRIFT-2815] - Haxe: Support for Multiplexing Services on any Transport, Protocol and Server
1563 * [THRIFT-2886] - Integrate binary type in standard Thrift cross test
1564 * [THRIFT-2946] - Enhance usability of cross test framework
1565 * [THRIFT-2967] - Add .editorconfig to root
1566 * [THRIFT-3033] - Perl: Support for Multiplexing Services on any Transport, Protocol and Server
1567 * [THRIFT-3174] - Initialism code in the Go compiler doesn't check first word
1568 * [THRIFT-3193] - Option to supress date value in @Generated annotation
1569 * [THRIFT-3305] - Missing dist files for 0.9.3 release candidate
1570 * [THRIFT-3341] - Add testBool methods
1571 * [THRIFT-3308] - Fix broken test cases for 0.9.3 release candidate
1572
1573## Task
1574 * [THRIFT-2834] - Remove semi-colons from python code generator
1575 * [THRIFT-2853] - Adjust comments not applying anymore after THRIFT-2852
1576
1577## Test
1578 * [THRIFT-3211] - Add make cross support for php TCompactProtocol
1579
1580## Wish
1581 * [THRIFT-2838] - TNonblockingServer can bind to port 0 (i.e., get an OS-assigned port) but there is no way to get the port number
1582
1583
1584
1585Thrift 0.9.2
1586--------------------------------------------------------------------------------
1587## Bug
1588 * [THRIFT-2793] - Go compiler produces uncompilable code
1589 * [THRIFT-1481] - Unix domain sockets in C++ do not support the abstract namespace
1590 * [THRIFT-1455] - TBinaryProtocolT<Transport_>::writeString casts from size_t to uint32_t, which is not safe on 64-bit platforms
1591 * [THRIFT-1579] - PHP Extention - function thrift_protocol_read_binary not working from TBinarySerializer::deserialize
1592 * [THRIFT-1584] - Error: could not SetMinThreads in ThreadPool on single-core machines
1593 * [THRIFT-1614] - Thrift build from svn repo sources fails with automake-1.12
1594 * [THRIFT-1047] - rb_thrift_memory_buffer_write treats arg as string without check, segfaults if you pass non-string
1595 * [THRIFT-1639] - Java/Python: Serialization/Deserialization of double type using CompactProtocol
1596 * [THRIFT-1647] - NodeJS BufferedTransport does not work beyond the hello-world example
1597 * [THRIFT-2130] - Thrift's D library/test: parts of "make check" code do not compile with recent dmd-2.062 through dmd-2.064alpha
1598 * [THRIFT-2140] - Error compiling cpp tutorials
1599 * [THRIFT-2139] - MSVC 2012 Error - Cannot compile due to BoostThreadFactory
1600 * [THRIFT-2138] - pkgconfig file created with wrong include path
1601 * [THRIFT-2160] - Warning in thrift.h when compiling with -Wunused and NDEBUG
1602 * [THRIFT-2158] - Compact, JSON, and SimpleJSON protocols are not working correctly
1603 * [THRIFT-2167] - nodejs lib throws error if options argument isn't passed
1604 * [THRIFT-2288] - Go impl of Thrift JSON protocol wrongly writes/expects true/false for bools
1605 * [THRIFT-2147] - Thrift IDL grammar allows for dotted identifier names
1606 * [THRIFT-2145] - Rack and Thin are not just development dependencies
1607 * [THRIFT-2267] - Should be able to choose socket family in Python TSocket
1608 * [THRIFT-2276] - java path in spec file needs updating
1609 * [THRIFT-2281] - Generated send/recv code ignores errors returned by the underlying protocol
1610 * [THRIFT-2280] - TJSONProtocol.Flush() does not really flush the transport
1611 * [THRIFT-2274] - TNonblockingServer and TThreadedSelectorServer do not close their channel selectors on exit and leak file descriptors
1612 * [THRIFT-2265] - php library doesn't build
1613 * [THRIFT-2232] - IsSet* broken in Go
1614 * [THRIFT-2246] - Unset enum value is printed by ToString()
1615 * [THRIFT-2240] - thrift.vim (contrib) does not correctly handle 'union'
1616 * [THRIFT-2243] - TNonblockingServer in thrift crashes when TFramedTransport opens
1617 * [THRIFT-2230] - Cannot Build on RHEL/Centos/Amazon Linux 6.x
1618 * [THRIFT-2247] - Go generator doesn't deal well with map keys of type binary
1619 * [THRIFT-2253] - Python Tornado TTornadoServer base class change
1620 * [THRIFT-2261] - java: error: unmappable character for encoding ASCII
1621 * [THRIFT-2259] - C#: unexpected null logDelegate() pointer causes AV in TServer.serve()
1622 * [THRIFT-2225] - SSLContext destroy before cleanupOpenSSL
1623 * [THRIFT-2224] - TSSLSocket.h and TSSLServerSocket.h should use the platfromsocket too
1624 * [THRIFT-2229] - thrift failed to build on OSX 10.9 GM
1625 * [THRIFT-2227] - Thrift compiler generates spurious warnings with Xlint
1626 * [THRIFT-2219] - Thrift gem fails to build on OS X Mavericks with 1.9.3 rubies
1627 * [THRIFT-2226] - TServerSocket - keepAlive wrong initialization order
1628 * [THRIFT-2285] - TJsonProtocol implementation for Java doesn't allow a slash (/) to be escaped (\/)
1629 * [THRIFT-2216] - Extraneous semicolon in TProtocolUtil.h makes clang mad
1630 * [THRIFT-2215] - Generated HTML/Graphviz lists referenced enum identifiers as UNKNOWN.
1631 * [THRIFT-2211] - Exception constructor does not contain namespace prefix.
1632 * [THRIFT-2210] - lib/java TSimpleJSONProtocol can emit invalid JSON
1633 * [THRIFT-2209] - Ruby generator -- please namespace classes
1634 * [THRIFT-2202] - Delphi TServerImpl.DefaultLogDelegate may stop the server with I/O-Error 105
1635 * [THRIFT-2201] - Ternary operator returns different types (build error for some compilers)
1636 * [THRIFT-2200] - nested structs cause generate_fingerprint() to slow down at excessive CPU load
1637 * [THRIFT-2197] - fix jar output directory in rpm spec file
1638 * [THRIFT-2196] - Fix invalid dependency in Makefile.am
1639 * [THRIFT-2194] - Node: Not actually prepending residual data in TFramedTransport.receiver
1640 * [THRIFT-2193] - Java code generator emits spurious semicolon when deep copying binary data
1641 * [THRIFT-2191] - Fix charp JSONProtocol.ReadJSONDouble (specify InvariantCulture)
1642 * [THRIFT-2214] - System header sys/param.h is included inside the Thrift namespace
1643 * [THRIFT-2178] - Thrift generator returns error exit code on --version
1644 * [THRIFT-2171] - NodeJS implementation has extremely low test coverage
1645 * [THRIFT-2183] - gem install fails on zsh
1646 * [THRIFT-2182] - segfault in regression tests (GC bug in rb_thrift_memory_buffer_write)
1647 * [THRIFT-2181] - oneway calls don't work in NodeJS
1648 * [THRIFT-2169] - JavaME Thrift Library causes "java.io.IOException: No Response Entries Available" after using the Thrift client for some time
1649 * [THRIFT-2168] - Node.js appears broken (at least, examples don't work as intended)
1650 * [THRIFT-2293] - TSSLTransportFactory.createSSLContext() leaves files open
1651 * [THRIFT-2279] - TSerializer only returns the first 1024 bytes serialized
1652 * [THRIFT-2278] - Buffered transport doesn't support writes > buffer size
1653 * [THRIFT-2275] - Fix memory leak in golang compact_protocol.
1654 * [THRIFT-2282] - Incorect code generated for some typedefs
1655 * [THRIFT-2009] - Go redeclaration error
1656 * [THRIFT-1964] - 'Isset' causes problems with C#/.NET serializers
1657 * [THRIFT-2026] - Fix TCompactProtocol 64 bit builds
1658 * [THRIFT-2108] - Fix TAsyncClientManager timeout race
1659 * [THRIFT-2068] - Multiple calls from same connection are not processed in node
1660 * [THRIFT-1750] - Make compiler build cleanly under visual studio 10
1661 * [THRIFT-1755] - Comment parsing bug
1662 * [THRIFT-1771] - "make check" fails on x64 for libboost_unit_test_framework.a
1663 * [THRIFT-1841] - NodeJS Thrift incorrectly parses non-UTF8-string types
1664 * [THRIFT-1908] - Using php thrift_protocol accelerated transfer causes core dump
1665 * [THRIFT-1892] - Socket timeouts are declared in milli-seconds, but are actually set in micro-seconds
1666 * [THRIFT-2303] - TBufferredTransport not properly closing underlying transport
1667 * [THRIFT-2313] - nodejs server crash after processing the first request when using MultiplexedProcessor/FramedBuffer/BinaryProtocol
1668 * [THRIFT-2311] - Go: invalid code generated when exception name is a go keyword
1669 * [THRIFT-2308] - node: TJSONProtocol parse error when reading from buffered message
1670 * [THRIFT-2316] - ccp: TFileTransportTest
1671 * [THRIFT-2352] - msvc failed to compile thrift tests
1672 * [THRIFT-2337] - Golang does not report TIMED_OUT exceptions
1673 * [THRIFT-2340] - Generated server implementation does not send response type EXCEPTION on the Thrift.TApplicationExceptionType.UNKNOWN_METHOD exception
1674 * [THRIFT-2354] - Connection errors can lead to case_clause exceptions
1675 * [THRIFT-2339] - Uncaught exception in thrift c# driver
1676 * [THRIFT-2356] - c++ thrift client not working with ssl (SSL_connect hangs)
1677 * [THRIFT-2331] - Missing call to ReadStructBegin() in TApplicationException.Read()
1678 * [THRIFT-2323] - Uncompileable Delphi code generated for typedef'd structs
1679 * [THRIFT-2322] - Correctly show the number of times ExecutorService (java) has rejected the client.
1680 * [THRIFT-2389] - namespaces handled wrongly in acrionscript 3.0 implementation
1681 * [THRIFT-2388] - GoLang - Fix data races in simple_server and server_socket
1682 * [THRIFT-2386] - Thrift refuses to link yylex
1683 * [THRIFT-2375] - Excessive <br>'s in generated HTML
1684 * [THRIFT-2373] - warning CS0414 in THttpClient.cs: private field 'Thrift.Transport.THttpClient.connection' assigned but never used
1685 * [THRIFT-2372] - thrift/json_protocol.go:160: function ends without a return statement
1686 * [THRIFT-2371] - ruby bundler version fails on ~1.3.1, remove and take latest avail
1687 * [THRIFT-2370] - Compiler SEGFAULTs generating HTML documentation for complex strucre
1688 * [THRIFT-2384] - Binary map keys produce uncompilable code in go
1689 * [THRIFT-2380] - unreachable code (CID 1174546, CID 1174679)
1690 * [THRIFT-2378] - service method arguments of binary type lead to uncompileable Go code
1691 * [THRIFT-2363] - Issue with character encoding of Success returned from Login using Thrift Proxy and NodeJS
1692 * [THRIFT-2359] - TBufferedTransport doesn't clear it's buffer on a failed flush call
1693 * [THRIFT-2428] - Python 3 setup.py support
1694 * [THRIFT-2367] - Build failure: stdlib and boost both define uint64_t
1695 * [THRIFT-2365] - C# decodes too many binary bytes from JSON
1696 * [THRIFT-2402] - byte count of FrameBuffer in AWAITING_CLOSE state is not subtracted from readBufferBytesAllocated
1697 * [THRIFT-2396] - Build Error on MacOSX
1698 * [THRIFT-2395] - thrift Ruby gem requires development dependency 'thin' regardless of environment
1699 * [THRIFT-2414] - c_glib fix several bug.
1700 * [THRIFT-2420] - Go argument parser for methods without arguments does not skip fields
1701 * [THRIFT-2439] - Bug in TProtocolDecorator Class causes parsing errors
1702 * [THRIFT-2419] - golang - Fix fmt.Errorf in generated code
1703 * [THRIFT-2418] - Go handler function panics on internal error
1704 * [THRIFT-2405] - Node.js Multiplexer tests fail (silently)
1705 * [THRIFT-2581] - TFDTransport destructor should not throw
1706 * [THRIFT-2575] - Thrift includes siginfo_t within apache::thrift::protocol namespace
1707 * [THRIFT-2577] - TFileTransport missuse of closesocket on windows platform
1708 * [THRIFT-2576] - Implement Thrift.Protocol.prototype.skip method in JavaScript library
1709 * [THRIFT-2588] - Thrift compiler is not buildable in Visual Studio 2010
1710 * [THRIFT-2594] - JS Compiler: Single quotes are not being escaped in constants.
1711 * [THRIFT-2591] - TFramedTransport does not handle payloads split across packets correctly
1712 * [THRIFT-2599] - Uncompileable Delphi code due to naming conflicts with IDL
1713 * [THRIFT-2590] - C++ Visual Studio solution doesn't include Multiplexing support
1714 * [THRIFT-2595] - Node.js: Fix global leaks and copy-paste errors
1715 * [THRIFT-2565] - autoconf fails to find mingw-g++ cross compiler on travis CI
1716 * [THRIFT-2555] - excessive "unused field" comments
1717 * [THRIFT-2554] - double initialization in generated Read() method
1718 * [THRIFT-2551] - OutOfMemoryError "unable to create new native thread" kills serve thread
1719 * [THRIFT-2543] - Generated enum type in haskell should be qualified
1720 * [THRIFT-2560] - Thrift compiler generator tries to concat ints with strings using +
1721 * [THRIFT-2559] - Centos 6.5 unable to "make" with Thrift 0.9.1
1722 * [THRIFT-2526] - Assignment operators and copy constructors in c++ don't copy the __isset struct
1723 * [THRIFT-2454] - c_glib: There is no gethostbyname_r() in some OS.
1724 * [THRIFT-2451] - Do not use pointers for optional fields with defaults. Do not write such fields if its value set to default. Also, do not use pointers for any optional fields mapped to go map or slice. generate Get accessors
1725 * [THRIFT-2450] - include HowToContribute in the src repo
1726 * [THRIFT-2448] - thrift/test/test.sh has incorrect Node.js test path
1727 * [THRIFT-2460] - unopened socket fd must be less than zero.
1728 * [THRIFT-2459] - --version should not exit 1
1729 * [THRIFT-2468] - Timestamp handling
1730 * [THRIFT-2467] - Unable to build contrib/fb303 on OSX 10.9.2
1731 * [THRIFT-2466] - Improper error handling for SSL/TLS connections that don't complete a handshake
1732 * [THRIFT-2463] - test/py/RunClientServer.py fails sometimes
1733 * [THRIFT-2458] - Generated golang server code for "oneway" methods is incorrect
1734 * [THRIFT-2456] - THttpClient fails when using async support outside Silverlight
1735 * [THRIFT-2524] - Visual Studio project is missing TThreadedServer files
1736 * [THRIFT-2523] - Visual Studio project is missing OverlappedSubmissionThread files
1737 * [THRIFT-2520] - cpp:cob_style generates incorrect .tcc file
1738 * [THRIFT-2508] - Uncompileable C# code due to language keywords in IDL
1739 * [THRIFT-2506] - Update TProtocolException error codes to be used consistently throughout the library
1740 * [THRIFT-2505] - go: struct should always be a pointer to avoid copying of potentially size-unbounded structs
1741 * [THRIFT-2515] - TLS Method error during make
1742 * [THRIFT-2503] - C++: Fix name collision when a struct has a member named "val"
1743 * [THRIFT-2477] - thrift --help text with misplaced comma
1744 * [THRIFT-2492] - test/cpp does not compile on mac
1745 * [THRIFT-2500] - sending random data crashes thrift(golang) service
1746 * [THRIFT-2475] - c_glib: buffered_transport_write function return always TRUE.
1747 * [THRIFT-2495] - JavaScript/Node string constants lack proper escaping
1748 * [THRIFT-2491] - unable to import generated ThriftTest service
1749 * [THRIFT-2490] - c_glib: if fail to read a exception from server, client may be occurred double free
1750 * [THRIFT-2470] - THttpHandler swallows exceptions from processor
1751 * [THRIFT-2533] - Boost version in requirements should be updated
1752 * [THRIFT-2532] - Java version in installation requirements should be updated
1753 * [THRIFT-2529] - TBufferedTransport split Tcp data bug in nodeJs
1754 * [THRIFT-2537] - Path for "go get" does not work (pull request 115)
1755 * [THRIFT-2443] - Node fails cross lang tests
1756 * [THRIFT-2437] - Author fields in Python setup.py must be strings not lists.
1757 * [THRIFT-2435] - Java compiler doesn't like struct member names that are identical to an existing enum or struct type
1758 * [THRIFT-2434] - Missing namespace import for php TMultiplexedProcessor implementation
1759 * [THRIFT-2432] - Flaky parallel build
1760 * [THRIFT-2430] - Crash during TThreadPoolServer shutdown
1761 * [THRIFT-667] - Period should not be allowed in identifier names
1762 * [THRIFT-1212] - Members capital case conflict
1763 * [THRIFT-2584] - Error handler not listened on javascript client
1764 * [THRIFT-2294] - Incorrect Makefile generation
1765 * [THRIFT-2601] - Fix vagrant to work again for builds again
1766 * [THRIFT-2092] - TNonblocking server should release handler as soon as connection closes
1767 * [THRIFT-2557] - CS0542 member names cannot be the same as their enclosing type
1768 * [THRIFT-2605] - TSocket warning on gcc 4.8.3
1769 * [THRIFT-2607] - ThreadManager.cpp warning on clang++ 3.4
1770 * [THRIFT-1998] - TCompactProtocol.tcc - one more warning on Visual 2010
1771 * [THRIFT-2610] - MSVC warning in TSocket.cpp
1772 * [THRIFT-2614] - TNonblockingServer.cpp warnings on MSVC
1773 * [THRIFT-2608] - TNonblockingServer.cpp warnings on clang 3.4
1774 * [THRIFT-2606] - ThreadManager.h warning in clang++ 3.4
1775 * [THRIFT-2609] - TFileTransport.h unused field warning (clang 3.4)
1776 * [THRIFT-2416] - Cannot use TCompactProtocol with MSVC
1777 * [THRIFT-1803] - Ruby Thrift 0.9.0 tries to encode UUID to UTF8 and crashes
1778 * [THRIFT-2385] - Problem with gethostbyname2 during make check
1779 * [THRIFT-2262] - thrift server 'MutateRow' operation gives no indication of success / failure
1780 * [THRIFT-2048] - Prefer boolean context to nullptr_t conversion
1781 * [THRIFT-2528] - Thrift Erlang Library: Multiple thrift applications in one bundle
1782 * [THRIFT-1999] - warning on gcc 4.7 while compiling BoostMutex.cpp
1783 * [THRIFT-2104] - Structs lose binary data when transferred from server to client in Java
1784 * [THRIFT-2184] - undefined method rspec_verify for Thrift::MemoryBufferTransport
1785 * [THRIFT-2351] - PHP TCompactProtocol has fails to decode messages
1786 * [THRIFT-2016] - Resource Leak in thrift struct under compiler/cpp/src/parse/t_function.h
1787 * [THRIFT-2273] - Please delete old releases from mirroring system
1788 * [THRIFT-2270] - Faulty library version numbering at build or documentation
1789 * [THRIFT-2203] - Tests keeping failing on Jenkins and Travis CI
1790 * [THRIFT-2399] - thrift.el: recognize "//"-style comments in emacs thrift-mode
1791 * [THRIFT-2582] - "FileTransport error" exception is raised when trying to use Java's TFileTransport
1792 * [THRIFT-1682] - Multiple thread calling a Service function unsafely causes message corruption and terminates with Broken Pipe
1793 * [THRIFT-2357] - recurse option has no effect when generating php
1794 * [THRIFT-2248] - Go generator doesn't deal well with map keys of type binary
1795 * [THRIFT-2426] - clarify IP rights and contributions from fbthrift
1796 * [THRIFT-2041] - TNonblocking server compilation on windows (ARITHMETIC_RIGHT_SHIFT)
1797 * [THRIFT-2400] - thrift.el: recognize "//"-style comments in emacs thrift-mode
1798 * [THRIFT-1717] - Fix deb build in jenkins
1799 * [THRIFT-2266] - ThreadManager.h:24:10: fatal error: 'tr1/functional' file not found on Mac 10.9 (Mavericks)
1800 * [THRIFT-1300] - Test failures with parallel builds (make -j)
1801 * [THRIFT-2487] - Tutorial requires two IDL files but only one is linked from the Thrift web site
1802 * [THRIFT-2329] - missing release tags within git
1803 * [THRIFT-2306] - concurent client calls with nodejs
1804 * [THRIFT-2222] - ruby gem cannot be compiled on OS X mavericks
1805 * [THRIFT-2381] - code which generated by thrift2/hbase.thrift compile error
1806 * [THRIFT-2390] - no close event when connection lost
1807 * [THRIFT-2146] - Unable to pass multiple "--gen" options to the thrift compiler
1808 * [THRIFT-2438] - Unexpected readFieldEnd call causes JSON Parsing errors
1809 * [THRIFT-2498] - Error message "Invalid method name" while trying to call HBase Thrift API
1810 * [THRIFT-841] - Build cruft
1811 * [THRIFT-2570] - Wrong URL given in http://thrift.apache.org/developers
1812 * [THRIFT-2604] - Fix debian packaging
1813 * [THRIFT-2618] - Unignore /aclocal files required for build
1814 * [THRIFT-2562] - ./configure create MakeFile in lib/d with errors
1815 * [THRIFT-2593] - Unable to build thrift on ubuntu-12.04 (Precise)
1816 * [THRIFT-2461] - Can't install thrift-0.8.0 on OS X 10.9.2
1817 * [THRIFT-2602] - Fix missing dist files
1818 * [THRIFT-2620] - Fix python packaging
1819 * [THRIFT-2545] - Test CPP fails to build (possibly typo)
1820
1821## Documentation
1822 * [THRIFT-2155] - Adding one liner guide to rename the version.h.in and rename thrifty.cc.h
1823 * [THRIFT-1991] - Add exceptions to examples
1824 * [THRIFT-2334] - add a tutorial for node JS
1825 * [THRIFT-2392] - Actionscript tutorial
1826 * [THRIFT-2383] - contrib: sample for connecting Thrift with Rebus
1827 * [THRIFT-2382] - contrib: sample for connecting Thrift with STOMP
1828
1829## Improvement
1830 * [THRIFT-1457] - Capacity of TframedTransport write buffer is never reset
1831 * [THRIFT-1135] - Node.js tutorial
1832 * [THRIFT-1371] - Socket timeouts (SO_RCVTIMEO and SO_SNDTIMEO) not supported on Solaris
1833 * [THRIFT-2142] - Minor tweaks to thrift.el for better emacs package compatibility
1834 * [THRIFT-2268] - Modify TSaslTransport to ignore TCP health checks from loadbalancers
1835 * [THRIFT-2264] - GitHub page incorrectly states that Thrift is still incubating
1836 * [THRIFT-2263] - Always generate good hashCode for Java
1837 * [THRIFT-2233] - Java compiler should defensively copy its binary inputs
1838 * [THRIFT-2239] - Address FindBugs errors
1839 * [THRIFT-2249] - Add SMP Build option to thrift.spec (and three config defines)
1840 * [THRIFT-2254] - Exceptions generated by Go compiler should implement error interface
1841 * [THRIFT-2260] - Thrift imposes unneeded dependency on commons-lang3
1842 * [THRIFT-2258] - Add TLS v1.1/1.2 support to TSSLSocket.cpp
1843 * [THRIFT-2205] - Node.js Test Server to support test.js JavaScript Browser test and sundry fixes
1844 * [THRIFT-2204] - SSL client for the cocoa client
1845 * [THRIFT-2172] - Java compiler allocates optionals array for every struct with an optional field
1846 * [THRIFT-2185] - use cabal instead of runhaskell in haskell library
1847 * [THRIFT-1926] - PHP Constant Generation Refactoring
1848 * [THRIFT-2029] - Port C++ tests to Windows
1849 * [THRIFT-2054] - TSimpleFileTransport - Java Lib has no straight forward TTransport based file transport
1850 * [THRIFT-2040] - "uninitialized variable" warnings on MSVC/windows
1851 * [THRIFT-2034] - Give developers' C++ code direct access to socket FDs on server side
1852 * [THRIFT-2095] - Use print function for Python 3 compatiblity
1853 * [THRIFT-1868] - Make the TPC backlog configurable in the Java servers
1854 * [THRIFT-1813] - Add @Generated annotation to generated classes
1855 * [THRIFT-1815] - Code generators line buffer output
1856 * [THRIFT-2305] - TFramedTransport empty constructor should probably be private
1857 * [THRIFT-2304] - Move client assignments from construtor in method
1858 * [THRIFT-2309] - Ruby (gem) & PHP RPM subpackages
1859 * [THRIFT-2318] - perl: dependency Class::Accessor not checked
1860 * [THRIFT-2317] - exclude tutorial from build
1861 * [THRIFT-2320] - Program level doctext does not get attached by parser
1862 * [THRIFT-2349] - Golang - improve tutorial
1863 * [THRIFT-2348] - PHP Generator: add array typehint to functions
1864 * [THRIFT-2344] - configure.ac: compiler-only option
1865 * [THRIFT-2343] - Golang - Return a single error for all exceptions instead of multiple return values
1866 * [THRIFT-2341] - Enable generation of Delphi XMLDoc comments (a.k.a. "Help Insight")
1867 * [THRIFT-2355] - Add SSL and Web Socket Support to Node and JavaScript
1868 * [THRIFT-2350] - Add async calls to normal JavaScript
1869 * [THRIFT-2330] - Generate PHPDoc comments
1870 * [THRIFT-2332] - RPMBUILD: run bootstrap (if needed)
1871 * [THRIFT-2391] - simple socket transport for actionscript 3.0
1872 * [THRIFT-2376] - nodejs: allow Promise style calls for client and server
1873 * [THRIFT-2369] - Add ssl support for nodejs implementation
1874 * [THRIFT-2401] - Haskell tutorial compiles
1875 * [THRIFT-2417] - C# Union classes are not partial
1876 * [THRIFT-2415] - Named pipes server performance & message mode
1877 * [THRIFT-2404] - emit warning on (typically inefficient) list<byte>
1878 * [THRIFT-2398] - Improve Node Server Library
1879 * [THRIFT-2397] - Add CORS and CSP support for JavaScript and Node.js libraries
1880 * [THRIFT-2407] - use markdown (rename README => README.md)
1881 * [THRIFT-2300] - D configure info output should follow same format as other languages
1882 * [THRIFT-2579] - Windows CE support
1883 * [THRIFT-2574] - Compiler option to generate namespace directories for Ruby
1884 * [THRIFT-2571] - Simplify cross compilation using CMake
1885 * [THRIFT-2569] - Introduce file to specify third party library locations on Windows
1886 * [THRIFT-2568] - Implement own certificate handler
1887 * [THRIFT-2552] - eliminate warning from configure.ac
1888 * [THRIFT-2549] - Generate json tag for struct members. use go.tag annotation to override the default generated tag.
1889 * [THRIFT-2544] - Add support for socket transport for c# library when using Windows Phone projects
1890 * [THRIFT-2453] - haskell tutorial: fix up division by 0 example
1891 * [THRIFT-2449] - Enhance typedef structure to distinguish between forwards and real typedefs
1892 * [THRIFT-2446] - There is no way to handle server stream errors
1893 * [THRIFT-2455] - Allow client certificates to be used with THttpClient
1894 * [THRIFT-2511] - Node.js needs the compact protocol
1895 * [THRIFT-2493] - Node.js lib needs HTTP client
1896 * [THRIFT-2502] - Optimize go implementations of binary and compact protocols for speed
1897 * [THRIFT-2494] - Add enum toString helper function in c_glib
1898 * [THRIFT-2471] - Make cpp.ref annotation language agnostic
1899 * [THRIFT-2497] - server and client for test/go, also several fixes and improvements
1900 * [THRIFT-2535] - TJSONProtocol when serialized yields TField ids rather than names
1901 * [THRIFT-2220] - Add a new struct structv?
1902 * [THRIFT-1352] - Thrift server
1903 * [THRIFT-989] - Push boost m4 macros upstream
1904 * [THRIFT-1349] - Remove unnecessary print outs
1905 * [THRIFT-2496] - server and client for test/go, also several fixes and improvements
1906 * [THRIFT-1114] - Maven publish shouldn't require passwords hardcoded in settings.xml
1907 * [THRIFT-2043] - visual 2010 warnings - unreachable code
1908 * [THRIFT-1683] - Implement alternatives to Javascript Client side Transport protocol, just as NPAPI and WebSocket.
1909 * [THRIFT-1746] - provide a SPDX file
1910 * [THRIFT-1772] - Serialization does not check types of embedded structures.
1911 * [THRIFT-2387] - nodejs: external imports should be centralized in index.js
1912 * [THRIFT-2037] - More general macro THRIFT_UNUSED_VARIABLE
1913
1914## New Feature
1915 * [THRIFT-1012] - Transport for DataInput DataOutput interface
1916 * [THRIFT-2256] - Using c++11/c++0x std library replace boost library
1917 * [THRIFT-2250] - JSON and MemoryBuffer for JavaME
1918 * [THRIFT-2114] - Python Service Remote SSL Option
1919 * [THRIFT-1719] - SASL client support for Python
1920 * [THRIFT-1894] - Thrift multi-threaded async Java Server using Java 7 AsynchronousChannelGroup
1921 * [THRIFT-1893] - HTTP/JSON server/client for node js
1922 * [THRIFT-2347] - C# TLS Transport based on THRIFT-181
1923 * [THRIFT-2377] - Allow addition of custom HTTP Headers to an HTTP Transport
1924 * [THRIFT-2408] - Named Pipe Transport Option for C#
1925 * [THRIFT-2572] - Add string/collection length limit checks (from C++) to java protocol readers
1926 * [THRIFT-2469] - "java:fullcamel" option to automatically camel-case underscored attribute names
1927 * [THRIFT-795] - Importing service functions (simulation multiple inheritance)
1928 * [THRIFT-2164] - Add a Get/Post Http Server to Node along with examples
1929 * [THRIFT-2255] - add Parent Class for generated Struct class
1930
1931## Question
1932 * [THRIFT-2539] - Tsocket.cpp addrinfo ai_flags = AI_ADDRCONFIG
1933 * [THRIFT-2440] - how to connect as3 to java by thrift ,
1934 * [THRIFT-2379] - Memmory leaking while using multithreading in C++ server.
1935 * [THRIFT-2277] - Thrift: installing fb303 error
1936 * [THRIFT-2567] - Csharp slow ?
1937 * [THRIFT-2573] - thrift 0.9.2 release
1938
1939## Sub-task
1940 * [THRIFT-981] - cocoa: add version Info to the library
1941 * [THRIFT-2132] - Go: Support for Multiplexing Services on any Transport, Protocol and Server
1942 * [THRIFT-2299] - TJsonProtocol implementation for Ruby does not allow for both possible slash (solidus) encodings
1943 * [THRIFT-2298] - TJsonProtocol implementation for C# does not allow for both possible slash (solidus) encodings
1944 * [THRIFT-2297] - TJsonProtocol implementation for Delphi does not allow for both possible slash (solidus) encodings
1945 * [THRIFT-2271] - JavaScript: Support for Multiplexing Services
1946 * [THRIFT-2251] - go test for compact protocol is not running
1947 * [THRIFT-2195] - Delphi: Add event handlers for server and processing events
1948 * [THRIFT-2176] - TSimpleJSONProtocol.ReadFieldBegin() does not return field type and ID
1949 * [THRIFT-2175] - Wrong field type set for binary
1950 * [THRIFT-2174] - Deserializing JSON fails in specific cases
1951 * [THRIFT-2053] - NodeJS: Support for Multiplexing Services
1952 * [THRIFT-1914] - Python: Support for Multiplexing Services on any Transport, Protocol and Server
1953 * [THRIFT-1810] - add ruby to test/test.sh
1954 * [THRIFT-2310] - PHP: Client-side support for Multiplexing Services
1955 * [THRIFT-2346] - C#: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1956 * [THRIFT-2345] - Delphi: UTF-8 sent by PHP as JSON is not understood by TJsonProtocol
1957 * [THRIFT-2338] - First doctext wrongly interpreted as program doctext in some cases
1958 * [THRIFT-2325] - SSL test certificates
1959 * [THRIFT-2358] - C++: add compact protocol to cross language test suite
1960 * [THRIFT-2425] - PHP: Server-side support for Multiplexing Services
1961 * [THRIFT-2421] - Tree/Recursive struct support in thrift
1962 * [THRIFT-2290] - Update Go tutorial to align with THRIFT-2232
1963 * [THRIFT-2558] - CSharp compiler generator tries to concat ints with strings using +
1964 * [THRIFT-2507] - Additional LUA TProtocolException error code needed?
1965 * [THRIFT-2499] - Compiler: allow annotations without "= value"
1966 * [THRIFT-2534] - Cross language test results should recorded to a status.md or status.html file automatically
1967 * [THRIFT-66] - Java: Allow multiplexing multiple services over a single TCP connection
1968 * [THRIFT-1681] - Add Lua Support
1969 * [THRIFT-1727] - Ruby-1.9: data loss: "binary" fields are re-encoded
1970 * [THRIFT-1726] - Ruby-1.9: "binary" fields are represented by string whose encoding is "UTF-8"
1971 * [THRIFT-988] - perl: add version Info to the library via configure
1972 * [THRIFT-334] - Compact Protocol for PHP
1973 * [THRIFT-2444] - pull request 88: thrift: clean up enum value assignment
1974
1975## Task
1976 * [THRIFT-2223] - Spam links on wiki
1977 * [THRIFT-2566] - Please create a DOAP file for your TLP
1978 * [THRIFT-2237] - Update archive to contain all versions
1979 * [THRIFT-962] - Tutorial page on our website is really unhelpful
1980
1981## Test
1982 * [THRIFT-2327] - nodejs: nodejs test suite should be bundled with the library
1983 * [THRIFT-2445] - THRIFT-2384 (code generation for go maps with binary keys) should be tested
1984 * [THRIFT-2501] - C# The test parameters from the TestServer and TestClient are different from the http://thrift.apache.org/test/
1985
1986## Wish
1987 * [THRIFT-2190] - Add the JavaScript thrift.js lib to the Bower registry
1988 * [THRIFT-2076] - boost::optional instead of __isset
1989
1990
1991
1992Thrift 0.9.1
1993--------------------------------------------------------------------------------
1994## Bug
1995 * [THRIFT-1440] - debian packaging: minor-ish policy problems
1996 * [THRIFT-1402] - Generated Y_types.js does not require() X_types.js when an include in the IDL file was used
1997 * [THRIFT-1551] - 2 thrift file define only struct (no service), one include another, the gen nodejs file didn't have "requires" at the top
1998 * [THRIFT-1264] - TSocketClient is queried by run loop after deallocation in Cocoa
1999 * [THRIFT-1600] - Thrift Go Compiler and Library out of date with Go 1 Release.
2000 * [THRIFT-1603] - Thrift IDL allows for multiple exceptions, args or struct member names to be the same
2001 * [THRIFT-1062] - Problems with python tutorials
2002 * [THRIFT-864] - default value fails if identifier is a struct
2003 * [THRIFT-930] - Ruby and Haskell bindings don't properly support DESTDIR (makes packaging painful)
2004 * [THRIFT-820] - The readLength attribute of TBinaryProtocol is used as an instance variable and is decremented on each call of checkReadLength
2005 * [THRIFT-1640] - None of the tutorials linked on the website contain content
2006 * [THRIFT-1637] - NPM registry does not include version 0.8
2007 * [THRIFT-1648] - NodeJS clients always receive 0 for 'double' values.
2008 * [THRIFT-1660] - Python Thrift library can be installed with pip but not easy_install
2009 * [THRIFT-1657] - Chrome browser sending OPTIONS method before POST in xmlHttpRequest
2010 * [THRIFT-2118] - Certificate error handling still incorrect
2011 * [THRIFT-2137] - Ruby test lib fails jenkins build #864
2012 * [THRIFT-2136] - Vagrant build not compiling java, ruby, php, go libs due to missing dependencies
2013 * [THRIFT-2135] - GO lib leaves behind test files that are auto generated
2014 * [THRIFT-2134] - mingw-cross-compile script failing with strip errors
2015 * [THRIFT-2133] - java TestTBinaryProtocol.java test failing
2016 * [THRIFT-2126] - lib/cpp/src/thrift/concurrency/STD* files missing from DIST
2017 * [THRIFT-2125] - debian missing from DIST
2018 * [THRIFT-2124] - .o, .so, .la, .deps, .libs, gen-* files left tutorials, test and lib/cpp when making DIST
2019 * [THRIFT-2123] - GO lib missing files in DIST build
2020 * [THRIFT-2121] - Compilation bug for Node.js
2021 * [THRIFT-2129] - php ext missing from dist
2022 * [THRIFT-2128] - lib GO tests fail with funct ends without a return statement
2023 * [THRIFT-2286] - Failed to compile Thrift0.9.1 with boost1.55 by VS2010 if select Debug-mt&x64 mode.
2024 * [THRIFT-1973] - TCompactProtocol in C# lib does not serialize and deserialize negative int32 and int64 number correctly
2025 * [THRIFT-1992] - casts in TCompactProtocol.tcc causing "dereferencing type-punned pointer will break strict-aliasing rules" warnings from gcc
2026 * [THRIFT-1930] - C# generates unsigned byte for Thrift "byte" type
2027 * [THRIFT-1929] - Update website to use Mirrors for downloads
2028 * [THRIFT-1928] - Race may still exist in TFileTransport::flush()
2029 * [THRIFT-1934] - Tabs in Example section on main page are not working
2030 * [THRIFT-1933] - Delphi generator crashes when a typedef references another typedef from an included file
2031 * [THRIFT-1942] - Binary accelerated cpp extension does not use Thrift namespaces for Exceptions
2032 * [THRIFT-1959] - C#: Add Union TMemoryBuffer support
2033 * [THRIFT-1958] - C#: Use static Object.Equals instead of .Equals() calls in equals
2034 * [THRIFT-1957] - NodeJS TFramedTransport and TBufferedTransport read bytes as unsigned
2035 * [THRIFT-1955] - Union Type writer generated in C# does not WriteStructBegin
2036 * [THRIFT-1952] - Travis CI
2037 * [THRIFT-1949] - WP7 build broken
2038 * [THRIFT-1943] - docstrings for enum values are ignored
2039 * [THRIFT-2070] - Improper `HexChar' and 'HexVal' implementation in TJSONProtocol.cs
2040 * [THRIFT-2017] - Resource Leak in thrift struct under compiler/cpp/src/parse/t_program.h
2041 * [THRIFT-2032] - C# client leaks sockets/handles
2042 * [THRIFT-1996] - JavaME Constants generation is broken / inconsistent with regular Java generation
2043 * [THRIFT-2002] - Haskell: Test use Data.Maybe instead of Maybe
2044 * [THRIFT-2051] - Vagrant fails to build erlang
2045 * [THRIFT-2050] - Vagrant C# lib compile fails with TException missing
2046 * [THRIFT-1978] - Ruby: Thrift should allow for the SSL verify mode to be set
2047 * [THRIFT-1984] - namespace collision in python bindings
2048 * [THRIFT-1988] - When trying to build a debian package it fails as the file NEWS doesn't exist
2049 * [THRIFT-1975] - TBinaryProtocol CheckLength can't be used for a client
2050 * [THRIFT-1995] - '.' allowed at end of identifier generates non-compilable code
2051 * [THRIFT-2112] - Error in Go generator when using typedefs in map keys
2052 * [THRIFT-2088] - Typos in Thrift compiler help text
2053 * [THRIFT-2080] - C# multiplex processor does not catch IOException
2054 * [THRIFT-2082] - Executing "gmake clean" is broken
2055 * [THRIFT-2102] - constants are not referencing to correct type when included from another thrift file
2056 * [THRIFT-2100] - typedefs are not correctly referenced when including from other thrift files
2057 * [THRIFT-2066] - 'make install' does not install two headers required for C++ bindings
2058 * [THRIFT-2065] - Not valid constants filename in Java
2059 * [THRIFT-2047] - Thrift.Protocol.TCompactProtocol, intToZigZag data lost (TCompactProtocol.cs)
2060 * [THRIFT-2036] - Thrift gem warns about class variable access from top level
2061 * [THRIFT-2057] - Vagrant fails on php tests
2062 * [THRIFT-2105] - Generated code for default values of collections ignores t_field::T_REQUIRED
2063 * [THRIFT-2091] - Unnecessary 'friend' declaration causes warning in TWinsockSingleton
2064 * [THRIFT-2090] - Go generator, fix including of other thrift files
2065 * [THRIFT-2106] - Fix support for namespaces in GO generator
2066 * [THRIFT-1783] - C# doesn't handle required fields correctly
2067 * [THRIFT-1782] - async only defined in silverlight
2068 * [THRIFT-1779] - Missing process_XXXX method in generated TProcessor implementation for all 'oneway' service functions
2069 * [THRIFT-1692] - SO_REUSEADDR allows for socket hijacking on Windows
2070 * [THRIFT-1720] - JRuby times out on successful connection
2071 * [THRIFT-1713] - Named and Anonymous Pipe transport (Delphi)
2072 * [THRIFT-1699] - Native Union#read has extra read_field_end call
2073 * [THRIFT-1749] - Python TSSLSocket error handling obscures actual error
2074 * [THRIFT-1748] - Guard and RWGuard macros defined in global namespace
2075 * [THRIFT-1734] - Front webpage is still advertising v0.8 as current release
2076 * [THRIFT-1729] - C glib refactor left empty folders in svn
2077 * [THRIFT-1767] - unions can't have required fields (Delphi)
2078 * [THRIFT-1765] - Incorrect error message printed for null or negative keys
2079 * [THRIFT-1778] - Configure requires manual intervention due to tar failure
2080 * [THRIFT-1777] - TPipeServer is UNSTOPPABLE
2081 * [THRIFT-1753] - Multiple C++ Windows, OSX, and iOS portability issues
2082 * [THRIFT-1756] - 'make -j 8' fails with "unterminated #ifdef" error
2083 * [THRIFT-1773] - Python library should run on python 2.4
2084 * [THRIFT-1769] - unions can't have required fields (C++)
2085 * [THRIFT-1768] - unions can't have required fields (Compiler)
2086 * [THRIFT-1666] - htonll usage in TBinaryProtocol.tcc generates warning with MSVC2010
2087 * [THRIFT-1919] - libthrift depends on httpcore-4.1.3 (directly) and httpcore-4.1.4 (transitively)
2088 * [THRIFT-1864] - implement event handler for non-blocking server
2089 * [THRIFT-1859] - Generated error c++ code with -out and include_prefix param
2090 * [THRIFT-1869] - TThreadPoolServer (java) dies when threadpool is consumed
2091 * [THRIFT-1842] - Memory leak with Pipes
2092 * [THRIFT-1838] - Can't build compiler on OS X because of missing thrifty.h
2093 * [THRIFT-1846] - Restore socket.h header to support builds with Android NDK
2094 * [THRIFT-1850] - make check hangs on TSocket tests in TransportTest.cpp
2095 * [THRIFT-1873] - Binary protocol factory ignores struct read/write flags
2096 * [THRIFT-1872] - issues with TBufferedTransport buffer
2097 * [THRIFT-1904] - Incorrect code is generated for typedefs which use included types
2098 * [THRIFT-1903] - PHP namespaces cause binary protocols to not be used
2099 * [THRIFT-1895] - Delphi: reserved variable name "result" not detected properly
2100 * [THRIFT-1881] - TNonblockingServer does not release open connections or threads on shutdown
2101 * [THRIFT-1888] - Java Thrift client can't connect to Python Thrift server on same host
2102 * [THRIFT-1831] - Bug in list deserializer
2103 * [THRIFT-1824] - many compile warning, becase Thread.h includes config.h
2104 * [THRIFT-1823] - Missing parenthesis breaks "IS_..." macro in generated code
2105 * [THRIFT-1806] - Python generation always truncates __init__.py files
2106 * [THRIFT-1795] - Race condition in TThreadedServerPool java implementation
2107 * [THRIFT-1794] - C# asyncctp broken
2108 * [THRIFT-1804] - Binary+compact protocol single byte error in Ruby library (ARM architecture): caused by different char signedness
2109 * [THRIFT-1800] - Documentation text not always escaped correctly when rendered to HTML
2110 * [THRIFT-1788] - C#: Constants static constructor does not compile
2111 * [THRIFT-1816] - Need "require" included thrift files in "xxx_types.js"
2112 * [THRIFT-1907] - Compiling namespace and sub-namespace directives for unrecognized generators should only be a warning
2113 * [THRIFT-1913] - skipping unknown fields in java unions
2114 * [THRIFT-2553] - C++ linker error - transport/TSocket
2115 * [THRIFT-274] - Towards a working release/versioning process
2116
2117## Documentation
2118 * [THRIFT-1971] - [Graphviz] Adds tutorial/general description documentation
2119 * [THRIFT-2001] - http://thrift.apache.org/ Example "C++ Server" tab is broken
2120
2121## Improvement
2122 * [THRIFT-1574] - Apache project branding requirements: DOAP file [PATCH]
2123 * [THRIFT-1347] - Unify the exceptions returned in generated Go code
2124 * [THRIFT-1353] - Switch to performance branch, get rid of BinaryParser
2125 * [THRIFT-1629] - Ruby 1.9 Compatibility during Thrift configure, make, install
2126 * [THRIFT-991] - Refactor Haskell code and generator
2127 * [THRIFT-990] - Sanify gettimeofday usage codebase-wide
2128 * [THRIFT-791] - Let C++ TSimpleServer be driven by an external main loop
2129 * [THRIFT-2117] - Cocoa TBinaryProtocol strictWrite should be set to true by default
2130 * [THRIFT-2014] - Change C++ lib includes to use <namespace/> style throughout
2131 * [THRIFT-1972] - Add support for async processors
2132 * [THRIFT-1970] - [Graphviz] Adds option to render exceptions relationships
2133 * [THRIFT-1966] - Support different files for SSL certificates and keys
2134 * [THRIFT-1965] - Adds Graphviz (graph description language) generator
2135 * [THRIFT-1956] - Switch to Apache Commons Lang 3
2136 * [THRIFT-1962] - Multiplex processor should send any TApplicationException back to client
2137 * [THRIFT-1960] - main() declares 22 unused gen bools
2138 * [THRIFT-1951] - libthrift.jar has source files in it
2139 * [THRIFT-1997] - Add accept backlog configuration method to TServerSocket
2140 * [THRIFT-2003] - Deprecate senum
2141 * [THRIFT-2052] - Vagrant machine image defaults to only 384MB of RAM
2142 * [THRIFT-1980] - Modernize Go tooling, fix go client libary.
2143 * [THRIFT-1977] - C# compiler should generate constant files prefixed with thrift file name
2144 * [THRIFT-1985] - add a Vagrantfile to build and test Apache Thrift fully reproducable
2145 * [THRIFT-1994] - Deprecate slist
2146 * [THRIFT-1993] - Factory to create instances from known (generated) interface types with Delphi
2147 * [THRIFT-2081] - Specified timeout should be used in TSocket.Open()
2148 * [THRIFT-2084] - Delphi: Ability to create entity Thrift-generated instances based on TypeInfo
2149 * [THRIFT-2083] - Improve the go lib: buffered Transport, save memory allocation, handle concurrent request
2150 * [THRIFT-2109] - Secure connections should be supported in Go
2151 * [THRIFT-2107] - minor Go generator fixes
2152 * [THRIFT-1695] - allow warning-free compilation in VS 2012 and GNU 4.6
2153 * [THRIFT-1735] - integrate tutorial into regular build
2154 * [THRIFT-1716] - max allowed connections should be PIPE_UNLIMITED_INSTANCES
2155 * [THRIFT-1715] - Allow excluding python parts when building contrib/fb303
2156 * [THRIFT-1733] - Fix RPM build issues on RHEL6/OL6 systems
2157 * [THRIFT-1728] - Upgradation of httpcomponents
2158 * [THRIFT-1876] - Use enum names instead of casted integers in assignments
2159 * [THRIFT-1874] - timeout for the server-side end of a named pipe
2160 * [THRIFT-1897] - Support validation of required fields
2161 * [THRIFT-1896] - Add TBase protocol for Cocoa
2162 * [THRIFT-1880] - Make named pipes server work asynchronously (overlapped) to allow for clean server stops
2163 * [THRIFT-1878] - Add the possibility to send custom headers
2164 * [THRIFT-1882] - Use single include
2165 * [THRIFT-1793] - C#: Use static read instead of instance read
2166 * [THRIFT-1799] - Option to generate HTML in "standalone mode"
2167 * [THRIFT-1815] - Code generators line buffer output
2168 * [THRIFT-1890] - C++: Make named pipes server work asynchronously
2169 * [THRIFT-474] - Generating Ruby on Rails friendly code
2170
2171## New Feature
2172 * [THRIFT-801] - Provide an interactive shell (irb) when generating ruby bindings
2173 * [THRIFT-2292] - Android Library Project
2174 * [THRIFT-2012] - Modernizing Go
2175 * [THRIFT-1969] - C#: Tests not properly linked from the solution
2176 * [THRIFT-1785] - C#: Add TMemoryBuffer serializer/deserializer
2177 * [THRIFT-1780] - Add option to generate nullable values
2178 * [THRIFT-1786] - C# Union Typing
2179 * [THRIFT-591] - Make the C++ runtime library be compatible with Windows and Visual Studio
2180 * [THRIFT-514] - Add option to configure compiler output directory
2181
2182## Question
2183 * [THRIFT-1764] - how to get the context of client when on a rpc call in server side?
2184 * [THRIFT-1791] - thrift's namespace directive when generating haskell code
2185
2186## Sub-task
2187 * [THRIFT-1594] - Java test clients should have a return codes that reflect whether it succeeds or not.
2188 * [THRIFT-1595] - Java test server should follow the documented behavior as of THRIFT-1590
2189 * [THRIFT-986] - st: add version Info to the library
2190 * [THRIFT-985] - php: add version Info to the library
2191 * [THRIFT-984] - ocaml: add version Info to the library
2192 * [THRIFT-1924] - Delphi: Inconsistency in serialization of optional fields
2193 * [THRIFT-1922] - C#: Inconsistency in serialization of optional fields
2194 * [THRIFT-1961] - C# tests should be in lib/csharp/test/...
2195 * [THRIFT-1822] - PHP unit test does not work
2196 * [THRIFT-1902] - C++: Support for Multiplexing Services on any Transport, Protocol and Server
2197 * [THRIFT-1901] - C#: Support for Multiplexing Services on any Transport, Protocol and Server
2198 * [THRIFT-1899] - Delphi: Support for Multiplexing Services on any Transport, Protocol and Server
2199 * [THRIFT-563] - Support for Multiplexing Services on any Transport, Protocol and Server
2200
2201
2202
2203Thrift 0.9
2204--------------------------------------------------------------------------------
2205## Bug
2206 * [THRIFT-1438] - lib/cpp/src/windows/config.h should read version from configure.ac rather than a #define
2207 * [THRIFT-1446] - Compile error with Delphi 2009 in constant initializer
2208 * [THRIFT-1450] - Problems building thrift 0.8.0 for Python and Ruby
2209 * [THRIFT-1449] - Ruby client does not work on solaris (?)
2210 * [THRIFT-1447] - NullpointerException in ProcessFunction.class :in "oneway" method
2211 * [THRIFT-1433] - TServerSocket fix for MSVC
2212 * [THRIFT-1429] - The nonblocking servers is supposed to use TransportFactory to read the data
2213 * [THRIFT-1427] - PHP library uses non-multibyte safe functions with mbstring function overloading
2214 * [THRIFT-1421] - Debian Packages can not be built
2215 * [THRIFT-1394] - Treatment of optional fields is not consistent between C++ and Java
2216 * [THRIFT-1511] - Server with oneway support ( JAVA )
2217 * [THRIFT-1496] - PHP compiler not namespacing enums
2218 * [THRIFT-1495] - PHP TestClient fatals on missing class
2219 * [THRIFT-1508] - TServerSocket does not allow for the user to specify the IP address to bind to
2220 * [THRIFT-1504] - Cocoa Generator should use local file imports for base Thrift headers
2221 * [THRIFT-1512] - Thrift socket support for Windows XP
2222 * [THRIFT-1502] - TSimpleServer::serve(): Do not print out error message if server was stopped.
2223 * [THRIFT-1501] - PHP old namespaces not generated for enums
2224 * [THRIFT-1483] - java compiler does not generate type parameters for services in extended clauses
2225 * [THRIFT-1479] - Compiled PHP process functions missing writeMessageEnd()
2226 * [THRIFT-1492] - enabling c_glib render thrift unusable (even for C++ code)
2227 * [THRIFT-1491] - Uninitialize processorFactory_ member in TServer.h
2228 * [THRIFT-1475] - Incomplete records generation for Erlang
2229 * [THRIFT-1486] - Javascript manual testserver not returning content types
2230 * [THRIFT-1488] - src/concurrency/Thread.h:91:58: error: invalid conversion from 'pthread_t {aka _opaque_pthread_t*}' to 'apache::thrift::concurrency::Thread::id_t {aka long long unsigned int}' [-fpermissive]
2231 * [THRIFT-1490] - Windows-specific header files - fixes & tweaks
2232 * [THRIFT-1526] - Union TupleSchemeFactory returns StandardSchemes
2233 * [THRIFT-1527] - Generated implementation of tupleReadStruct in unions return null when the setfield is unrecognized
2234 * [THRIFT-1524] - TNonBlockingServer does not compile in Visual Studio 2010
2235 * [THRIFT-1529] - TupleProtocol can unintentionally include an extra byte in bit vectors when number of optional fields is an integral of 8
2236 * [THRIFT-1473] - JSON context stack may be left in an incorrect state when an exception is thrown during read or write operations
2237 * [THRIFT-1456] - System.Net.HttpWebRequest' does not contain a definition for 'Proxy'
2238 * [THRIFT-1468] - Memory leak in TSaslServerTransport
2239 * [THRIFT-1461] - Recent TNonblockingServer changes broke --enable-boostthreads=yes, Windows
2240 * [THRIFT-1460] - why not add unicode strings support to python directly?
2241 * [THRIFT-1464] - AbstractNonblockingServer.FrameBuffer TNonblockingTransport accessor changed from public to private
2242 * [THRIFT-1467] - Possible AV with empty strings when using JSON protocol
2243 * [THRIFT-1523] - clientTimeout not worked as expected in TServerSocket created by TSSLTransportFactory
2244 * [THRIFT-1537] - TFramedTransport issues
2245 * [THRIFT-1519] - Thirft Build Failure referencing rb_intern2 symbol
2246 * [THRIFT-1518] - Generated C++ code only sends the first optional field in the write() function for a struct.
2247 * [THRIFT-1515] - NameError: global name 'TApplicationException' is not defined
2248 * [THRIFT-1554] - Inherited service methods are not resolved in derived service implementations
2249 * [THRIFT-1553] - thrift nodejs service side can't read map structure, key as enum, value as Object
2250 * [THRIFT-1575] - Typo in server/TThreadPoolServer.h
2251 * [THRIFT-1327] - Fix Spec Suite under Ruby-1.8.7 (works for MRI Ruby-1.9.2)
2252 * [THRIFT-1326] - on some platforms, #include <stdint.h> is necessary to be included in Thrift.h
2253 * [THRIFT-1159] - THttpClient->Flush() issue (connection thru proxy)
2254 * [THRIFT-1277] - Node.js serializes false booleans as null
2255 * [THRIFT-1224] - Cannot insert UTF-8 text
2256 * [THRIFT-1267] - Node.js can't throw exceptions.
2257 * [THRIFT-1338] - Do not use an unpatched autoconf 2.65 to generate release tarball
2258 * [THRIFT-1128] - MAC OS X: thrift.h incompatibility with Thrift.h
2259 * [THRIFT-1631] - Fix C++ server constructor typos
2260 * [THRIFT-1602] - PHP C Extension is not Compatible with PHP 5.4
2261 * [THRIFT-1610] - IWebProxy not available on WP7 platform
2262 * [THRIFT-1606] - Race condition in BoostThreadFactory.cpp
2263 * [THRIFT-1604] - Python exception handeling for changes from PEP 3110
2264 * [THRIFT-1607] - Incorrect file modes for several source files
2265 * [THRIFT-1583] - c_glib leaks memory
2266 * [THRIFT-1582] - Bad includes of nested thrift files in c_glib
2267 * [THRIFT-1578] - C_GLib generated code does not compile
2268 * [THRIFT-1597] - TJSONProtocol.php is missing from Makefile.am
2269 * [THRIFT-1591] - Enable TCP_NODELAY for ruby gem
2270 * [THRIFT-1624] - Isset Generated differently on different platforms
2271 * [THRIFT-1622] - Incorrect size returned on read
2272 * [THRIFT-1621] - Memory leaks
2273 * [THRIFT-1612] - Base64 encoding is broken
2274 * [THRIFT-1627] - compiler built using compilers.vcxproj cannot be used to build some test .thrift files
2275 * [THRIFT-1571] - Update Ruby HTTP transport for recent Ruby versions
2276 * [THRIFT-1023] - Thrift encoding (UTF-8) issue with Ruby 1.9.2
2277 * [THRIFT-1090] - Document the generation of a file called "Constants.java"
2278 * [THRIFT-1082] - Thrift::FramedTransport sometimes calls close() on an undefined value
2279 * [THRIFT-956] - Python module's version meta-data should be updated
2280 * [THRIFT-973] - Cocoa library won't compile using clang
2281 * [THRIFT-1632] - ruby: data corruption in thrift_native implementation of MemoryBufferTransport
2282 * [THRIFT-1665] - TBinaryProtocol: exceeded message length raises generic TException
2283 * [THRIFT-1664] - Reference to non-existing variable in build script
2284 * [THRIFT-1663] - Java Thrift server is not throwing exceptions
2285 * [THRIFT-1662] - "removeObject:" should be "removeObserver:" in [-TSocketServer dealloc]?
2286 * [THRIFT-1643] - Denial of Service attack in TBinaryProtocol.readString
2287 * [THRIFT-1674] - Update Thrift D library to be compatible with 2.060
2288 * [THRIFT-1673] - Ruby compile flags for extension for multi arch builds (os x)
2289 * [THRIFT-1655] - Configure still trying to use thrift_generators in output
2290 * [THRIFT-1654] - c_glib thrift_socket_read() returns corrupted data
2291 * [THRIFT-1653] - TThreadedSelectorServer leaks CLOSE_WAIT sockets
2292 * [THRIFT-1658] - Java thrift server is not throwing TApplicationException
2293 * [THRIFT-1656] - Setting proper headers in THttpServer.cpp so that "Cross-Origin Resource Sharing" on js client can work.
2294 * [THRIFT-1652] - TSaslTransport does not log the error when kerberos auth fails
2295 * [THRIFT-2272] - CLONE - Denial of Service attack in TBinaryProtocol.readString
2296 * [THRIFT-2086] - Invalid generated code for Node.JS when using namespaces
2297 * [THRIFT-1686] - t_php_generator.cc uses "and" instead of "&&", and causes compiler errors with Visual Studio
2298 * [THRIFT-1693] - libthrift has dependency on two different versions of httpcore
2299 * [THRIFT-1689] - don't exit(-1) in TNonblockingServer
2300 * [THRIFT-1679] - NodeJS: protocol readString() should treat string as utf8, not binary
2301 * [THRIFT-1721] - Dist broken due to 0.8.0 to 0.9.0 changes
2302 * [THRIFT-1710] - Minor issues in test case code
2303 * [THRIFT-1709] - Warning "Bitwise-or operator used on a sign-extended operand; consider casting to a smaller unsigned type first" in TBinaryProtocol.cs at ReadInt64()
2304 * [THRIFT-1707] - [ruby] Adjust server_spec.rb for RSpec 2.11.x and Ruby 1.9.3
2305 * [THRIFT-1671] - Cocoa code generator does not put keywords into generated method calls
2306 * [THRIFT-1670] - Incompatibilities between different versions of a Thrift interface
2307 * [THRIFT-1669] - NameError: global name 'TApplicationException' is not defined
2308 * [THRIFT-1668] - Compile error in contrib/fb303, thrift/TDispatchProcessor.h: No such file or directory
2309 * [THRIFT-1845] - Fix compiler warning caused by implicit string conversion with Xcode 4.6
2310 * [THRIFT-304] - Building the Python library requires development headers
2311 * [THRIFT-369] - sets and maps break equality
2312 * [THRIFT-556] - Ruby compiler does not correctly referred to top-level modules when a submodule masks the top-level name
2313 * [THRIFT-481] - indentation of ruby classes is off by a few
2314
2315## Improvement
2316 * [THRIFT-1498] - Allow TThreadedPoolServer.Args to pass a ExecutorService
2317 * [THRIFT-1444] - FunctionRunner - add syntactic sugar to create shared_ptrs
2318 * [THRIFT-1443] - define a TProcessor helper class to implement process()
2319 * [THRIFT-1441] - Generate constructor with parameters for exception class to let it update message property automatically.
2320 * [THRIFT-1520] - Embed version number in erlang .app file
2321 * [THRIFT-1480] - python: remove tabs, adjust whitespace and address PEP8 warnings
2322 * [THRIFT-1485] - Performance: pass large and/or refcounted arguments as "const"
2323 * [THRIFT-1484] - Introduce phpunit test suite
2324 * [THRIFT-1532] - The type specifications in the generated Erlang code should include "undefined" where it's used as a default value
2325 * [THRIFT-1534] - Required fields in the Delphi code generator.
2326 * [THRIFT-1469] - Java isset space optimization
2327 * [THRIFT-1465] - Visibility of methods in generated java code
2328 * [THRIFT-1453] - Don't change types of arguments when serializing with thrift php extension
2329 * [THRIFT-1452] - generate a swap() method for all generated structs
2330 * [THRIFT-1451] - FramedTransport: Prevent infinite loop when writing
2331 * [THRIFT-1521] - Two patches for more Performance
2332 * [THRIFT-1555] - Delphi version of the tutorial code
2333 * [THRIFT-1535] - Why thrift don't use wrapped class for optional fields ?
2334 * [THRIFT-1204] - Ruby autogenerated files should require 'thrift' gem
2335 * [THRIFT-1344] - Using the httpc module directly rather than the deprecated http layer
2336 * [THRIFT-1343] - no_auto_import min/2 to avoid compile warning
2337 * [THRIFT-1340] - Add support of ARC to Objective-C
2338 * [THRIFT-1611] - Improved code generation for typedefs
2339 * [THRIFT-1593] - Pass on errors like "connection closed" to the handler module
2340 * [THRIFT-1615] - PHP Namespace
2341 * [THRIFT-1567] - Thrift/cpp: Allow alternate classes to be used for
2342 * [THRIFT-1072] - Missing - (id) initWithSharedProcessor in TSharedProcessorFactory.h
2343 * [THRIFT-1650] - [ruby] Update clean items and svn:ignore entries for OS X artifacts
2344 * [THRIFT-1661] - [PATCH] Add --with-qt4 configure option
2345 * [THRIFT-1675] - Do we have any plan to support scala?
2346 * [THRIFT-1645] - Replace Object#tee with more conventional Object#tap in specs
2347 * [THRIFT-1644] - Upgrade RSpec to 2.10.x and refactor specs as needed
2348 * [THRIFT-1672] - MonoTouch (and Mono for Android) compatibility
2349 * [THRIFT-1702] - a thrift manual
2350 * [THRIFT-1694] - Re-Enable serialization for WP7 Silverlight
2351 * [THRIFT-1691] - Serializer/deserializer support for Delphi
2352 * [THRIFT-1688] - Update IDL page markup
2353 * [THRIFT-1725] - Tutorial web pages for Delphi and C#
2354 * [THRIFT-1714] - [ruby] Explicitly add CWD to Ruby test_suites.rb
2355 * [THRIFT-317] - Issues with Java struct validation
2356 * [THRIFT-164] - Build web tutorial on Incubator web site
2357 * [THRIFT-541] - Cocoa code generator doesn't put keywords before all arguments.
2358 * [THRIFT-681] - The HTML generator does not handle JavaDoc style comments very well
2359
2360## New Feature
2361 * [THRIFT-1500] - D programming language support
2362 * [THRIFT-1510] - There should be an implementation of the JsonProtocol for ruby
2363 * [THRIFT-1115] - python TBase class for dynamic (de)serialization, and __slots__ option for memory savings
2364 * [THRIFT-1953] - support for asp.net mvc 3
2365
2366## Question
2367 * [THRIFT-1235] - How could I use THttpServerTransportFactory withTNonBlockingServer
2368 * [THRIFT-1368] - TNonblockingServer usage
2369 * [THRIFT-1061] - Read an invalid frame size of 0. Are you using TFramedTransport on the client side?
2370 * [THRIFT-491] - Ripping raw pthreads out of TFileTransport and associated test issues
2371
2372## Sub-task
2373 * [THRIFT-1596] - Delphi: Test clients should have a return codes that reflect whether they succeeded or not
2374 * [THRIFT-982] - javame: add version Info to the library
2375 * [THRIFT-1722] - C# WP7 Assembly addition beaks mono build
2376 * [THRIFT-336] - Compact Protocol in C#
2377
2378## Test
2379 * [THRIFT-1613] - Add code back into empty source file ToStringTest.java
2380 * [THRIFT-1718] - Incorrect check in TFileTransportTest
2381
2382## Wish
2383 * [THRIFT-1463] - Decouple Thrift IDL from generators
2384 * [THRIFT-1466] - Proper Documentation for Thrift C Glib
2385 * [THRIFT-1539] - Build and distribute the fb303 python libraries along with thrift
2386 * [THRIFT-1685] - Please add "aereo.com" to "Powered by Apache Thrift" list in about page
2387 * [THRIFT-330] - TProcessor - additional method to called when connection is broken
2388
2389
2390
2391Thrift 0.8
2392--------------------------------------------------------------------------------
2393## Bug
2394 * [THRIFT-1436] - pip install thrift fails on Windows with "Unable to find vcvarsall.bat"
2395 * [THRIFT-1432] - Javascript struct constants declared in the same file as their struct definition will cause an error
2396 * [THRIFT-1428] - shared.thrft does not include namespace for php, so thrift compiler generate incorrect name
2397 * [THRIFT-1426] - Dist package missing files for release 0.8
2398 * [THRIFT-1425] - The Node package is incompatible with latest node (0.6) & npm (1.0.27)
2399 * [THRIFT-1416] - Python Unit test is broken on ci
2400 * [THRIFT-1419] - AbstractNonBlockingServer does not catch errors when invoking the processor
2401 * [THRIFT-1424] - Ruby specs fail when run with rake
2402 * [THRIFT-1420] - Nonblocking and HsHa server should make sure to close all their socket connections when the selector exits
2403 * [THRIFT-1413] - Generated code does not read MapEnd / ListEnd / SetEnd
2404 * [THRIFT-1409] - Name conflict check does not work properly for exception object(Delphi).
2405 * [THRIFT-1408] - Delphi Test Server: Exception test case fails due to naming conflict with e.message
2406 * [THRIFT-1407] - Typo in Python socket server causes Thrift to fail when we enable a global socket timout
2407 * [THRIFT-1397] - CI server fails during build due to unused parameters in delphi generator
2408 * [THRIFT-1404] - Delphi compiler generates struct reader code with problem.
2409 * [THRIFT-1400] - Ruby native extension aborts with __stack_chk_fail in OSX
2410 * [THRIFT-1399] - One of the TServerImpl.Create CTORs lacks implementation
2411 * [THRIFT-1390] - Debian packages build fix for Squeeze (build from the official 0.7.0 tarball)
2412 * [THRIFT-1393] - TTransportException's thrown from THttpClient contain superfluous slashes in the Exception message
2413 * [THRIFT-1392] - Enabling both namespaces and autoloading in generated PHP code won't work.
2414 * [THRIFT-1406] - Build error after applying THRIFT-1395
2415 * [THRIFT-1405] - Delphi compiler does not generates container serializer properly.
2416 * [THRIFT-1411] - java generator does not provide type parameter for TBaseProcessor
2417 * [THRIFT-1473] - JSON context stack may be left in an incorrect state when an exception is thrown during read or write operations
2418 * [THRIFT-1331] - Ruby library deserializes an empty map to nil
2419 * [THRIFT-1330] - PHP Namespaces no longer generated
2420 * [THRIFT-1328] - TBaseHelper.toString(...) appends ByteBuffer data outside of valid buffer range
2421 * [THRIFT-1322] - OCaml lib fail to compile: Thrift.ml line 305, int vs int32 mismatch
2422 * [THRIFT-1143] - Build doesn't detect correct architecture type on 64bit osx
2423 * [THRIFT-1205] - port server unduly fragile with arbitrary input
2424 * [THRIFT-1279] - type set is handled incorrectly when writing object
2425 * [THRIFT-1298] - Standard scheme doesn't read or write metadata along with field values
2426 * [THRIFT-1265] - C++ container deserialize
2427 * [THRIFT-1263] - publish ruby client to rubygems
2428 * [THRIFT-1384] - Java help menu missing newline near javame flag
2429 * [THRIFT-1382] - Bundle install doesnot work because thrift crashes
2430 * [THRIFT-1381] - Thrift C++ libs have incorrectly versioned names
2431 * [THRIFT-1350] - Go library code does not build as of r60 (most recent release)
2432 * [THRIFT-1365] - TupleProtocol#writeBitSet unintentionally writes a variable length byte array
2433 * [THRIFT-1359] - --gen-cob cpp:cob_style does not compile anymore
2434 * [THRIFT-1319] - Mismatch between how a union reads and writes a container
2435 * [THRIFT-1309] - libfb303-0.7.0.jar missing in maven repository
2436 * [THRIFT-1238] - Thrift JS client cannot read map of structures
2437 * [THRIFT-1254] - Code can't be compiled against a regular JRE: Object.clone() override has a different return type
2438 * [THRIFT-1367] - Mac OSX build fails with "no such file to load -- spec/rake/spectask"
2439 * [THRIFT-1355] - Running make in lib/rb doesn't build the native extensions
2440 * [THRIFT-1370] - Debian packaging should Build-Depend on libglib2.0-dev
2441 * [THRIFT-1342] - Compilation problem on Windows of fastbinary.c
2442 * [THRIFT-1341] - TProtocol.h endian detection wrong with boost
2443 * [THRIFT-1583] - c_glib leaks memory
2444 * [THRIFT-1582] - Bad includes of nested thrift files in c_glib
2445 * [THRIFT-1578] - C_GLib generated code does not compile
2446 * [THRIFT-1027] - 'make -j 16' fails with "unterminated #ifdef" error
2447 * [THRIFT-1121] - Java server performance regression in 0.6
2448 * [THRIFT-857] - tests run by "make install" fail if generators are disabled
2449 * [THRIFT-380] - Use setuptools for python build
2450
2451## Dependency upgrade
2452 * [THRIFT-1257] - thrift's dependency scope on javax.servlet:servlet-api should be 'provided'
2453
2454## Improvement
2455 * [THRIFT-1445] - minor C++ generator variable cleanup
2456 * [THRIFT-1435] - make TException.Message property conformant to the usual expectations
2457 * [THRIFT-1431] - Rename 'sys' module to 'util'
2458 * [THRIFT-1396] - Dephi generator has dependacy on boost 1.42 later.
2459 * [THRIFT-1395] - Patch to prevent warnings for integer types in some cases
2460 * [THRIFT-1275] - thrift: always prefix namespaces with " ::"
2461 * [THRIFT-1274] - thrift: fail compilation if an unexpected token is
2462 * [THRIFT-1271] - thrift: fix missing namespace in generated local
2463 * [THRIFT-1270] - thrift: add --allow-neg-keys argument to allow
2464 * [THRIFT-1345] - Allow building without tests
2465 * [THRIFT-1286] - Modernize the Thrift Ruby Library Dev Environment
2466 * [THRIFT-1284] - thrift: fix processor inheritance
2467 * [THRIFT-1283] - thrift: wrap t_cpp_generator::generate_process_function() to 80
2468 * [THRIFT-1282] - Upgrade httpclient to 4.1.2 (from 4.0.1)
2469 * [THRIFT-1281] - add @generated to the docblock
2470 * [THRIFT-1280] - Thrift: Improve Monitor exception-free interfaces
2471 * [THRIFT-1278] - javadoc warnings - compilation
2472 * [THRIFT-1227] - Erlang implementation of thrift JSON protocol
2473 * [THRIFT-1295] - Duplicate include in TSocket.cpp
2474 * [THRIFT-1294] - thrift: fix log message typos in TSimpleServer
2475 * [THRIFT-1293] - thrift: improve handling of exceptions thrown by
2476 * [THRIFT-1292] - thrift: silence log spew from TThreadedServer
2477 * [THRIFT-1288] - Allow typedefed exceptions in throws clauses
2478 * [THRIFT-1290] - thrift: TNonblockingServer: clean up state in the
2479 * [THRIFT-1287] - thrift: start refactoring some of the C++ processor
2480 * [THRIFT-1289] - thrift: implement TNonblockingServer::stop()
2481 * [THRIFT-1305] - thrift: make TConnection a private inner class of
2482 * [THRIFT-1304] - TNonblockingServer: pass in the connection context to
2483 * [THRIFT-1302] - thrift: raise an exception if send() times out in
2484 * [THRIFT-1301] - thrift: consolidate common code in TNonblockingServer
2485 * [THRIFT-1377] - abort PHP deserialization on unknown field type
2486 * [THRIFT-1379] - fix uninitialized enum values in thrift C++ objects
2487 * [THRIFT-1376] - Make port specification option in thrift remote
2488 * [THRIFT-1375] - fixed a hex char conversion bug in TJSONProtocol
2489 * [THRIFT-1373] - Fix user-defined exception generation in thrift (python)
2490 * [THRIFT-1361] - Optional replacement of pthread by boost::thread
2491 * [THRIFT-1320] - Consistency of configure generated config.h
2492 * [THRIFT-1317] - Remove copy constructibility from
2493 * [THRIFT-1316] - thrift: update server classes to accept
2494 * [THRIFT-1315] - thrift: generate server interface factory classes
2495 * [THRIFT-1314] - thrift: add TProcessorFactory
2496 * [THRIFT-1335] - Add accept timeout to TServerSocket
2497 * [THRIFT-1334] - Add more info to IllegalStateException
2498 * [THRIFT-1333] - Make RWGuard not copyable
2499 * [THRIFT-1332] - TSSLTransportParameters class uses hard coded value keyManagerType: SunX509
2500 * [THRIFT-1251] - Generated java code should indicate which fields are required and which are optional
2501 * [THRIFT-1387] - Build MSVC libraries with Boost Threads instead of Pthreads
2502 * [THRIFT-1339] - Extend Tuple Protocol to TUnions
2503 * [THRIFT-1031] - Patch to compile Thrift for vc++ 9.0 and 10.0
2504 * [THRIFT-1130] - Add the ability to specify symbolic default value for optional boolean
2505 * [THRIFT-1123] - Patch to compile Thrift server and client for vc++ 9.0 and 10.0
2506 * [THRIFT-386] - Make it possible to build the Python library without the extension
2507
2508## New Feature
2509 * [THRIFT-1401] - JSON-protocol for Delphi XE Libraries
2510 * [THRIFT-1167] - Java nonblocking server with more than one thread for select and handling IO
2511 * [THRIFT-1366] - Delphi generator, lirbrary and unit test.
2512 * [THRIFT-1354] - Add rake task to build just the gem file
2513 * [THRIFT-769] - Pluggable Serializers
2514
2515## Sub-task
2516 * [THRIFT-1415] - delphi: add version Info to the library
2517 * [THRIFT-1391] - Improved Delphi XE test cases
2518
2519
2520
2521Thrift 0.7
2522--------------------------------------------------------------------------------
2523## Bug
2524 * [THRIFT-1140] - Framed Transport Client using C (Glib) Library hangs when connecting to Ruby Server
2525 * [THRIFT-1154] - HttpClient does not specify the connection close parameter
2526 * [THRIFT-1153] - HttpClient does not specify the connection close parameter
2527 * [THRIFT-1149] - Nonblocking server fails when client connection is reset
2528 * [THRIFT-1146] - Android Incompatibility : in Android < 2.3 java.io.IOException doesn't support for Throwable parameter in constructor
2529 * [THRIFT-1133] - Java and JavaScript tutorial is broken since we have Java maven deployment
2530 * [THRIFT-1132] - Deserialization error in TApplicationException C#
2531 * [THRIFT-1131] - C# JSON Protocol is unable to decode escaped characters in string
2532 * [THRIFT-1208] - python TCompactProtocol.py writeBool and readBool not follow the compact-proto-spec-2.txt spec for CONTAINER_WRITE, CONTAINER_READ
2533 * [THRIFT-1200] - JS compiler generates code that clobbers existing namespaces
2534 * [THRIFT-1183] - Pure-ruby CompactProtocol raises ArgumentError when deserializing under Ruby 1.9
2535 * [THRIFT-1182] - Native deserializer segfaults on incorrect list element type
2536 * [THRIFT-1181] - AS3 compiler generates incorrect code for setting default values in constructor
2537 * [THRIFT-1234] - thrift --help is missing doc on py:utf8strings
2538 * [THRIFT-1180] - AS3 compiler generates uncompilable code for binary types.
2539 * [THRIFT-1194] - Java lib does not install artifacts to local dir correctly
2540 * [THRIFT-1193] - Potential infinite loop in nonblocking_server
2541 * [THRIFT-1192] - Typo: TProtocol.h tests for HAVE_SYS_PARAM_H_
2542 * [THRIFT-1190] - readBufferBytesAllocated in TNonblockingServer.java should be AtomicLong to fix FD leakage and general server malfunction
2543 * [THRIFT-1187] - nonblocking_server shutdown race under Ruby 1.9
2544 * [THRIFT-1178] - Java: TBase signature should be T extends TBase<?,?>
2545 * [THRIFT-1164] - Segmentation fault on NULL pointer in t_js_generator::generate_const
2546 * [THRIFT-1171] - Perl write/readDouble assumes little-endian platform
2547 * [THRIFT-1222] - Unhandled exception for TEvhttpServer request
2548 * [THRIFT-1220] - TProcessor::process never returns false
2549 * [THRIFT-1285] - Stable 0.7.0 Windows compiler exe available on the webside is not the good one
2550 * [THRIFT-1218] - c_glib uses wrong name in pkg-config
2551 * [THRIFT-1215] - Undefined property Thirft in lib/js/thrift.js
2552 * [THRIFT-1211] - When using THttpClient, non 200 responses leave the connection open
2553 * [THRIFT-1228] - The php accelerator module calls flush incorrectly
2554 * [THRIFT-1308] - libfb303-0.7.0.jar missing in maven repository
2555 * [THRIFT-1255] - Mismatch of method name between JavaME's lib and generated code (compareTo/compareObjects)
2556 * [THRIFT-1253] - Code generated for maps is not compiling
2557 * [THRIFT-1252] - Segfault in Ruby deserializer
2558 * [THRIFT-1094] - bug in TCompactProto python readMessageEnd method and updated test cases
2559 * [THRIFT-1093] - several bugs in python TCompactProtocol
2560 * [THRIFT-1092] - generated validate() method has wrong indentation
2561 * [THRIFT-1011] - Error generating package imports when using classes from other packages
2562 * [THRIFT-1050] - Declaring an argument named "manager" to a service method produces code that fails compile due to name conflicts with protected ivars in TAsyncClient
2563 * [THRIFT-1074] - .keystore and .truststore are missing from the 0.6.0 distribution
2564 * [THRIFT-1067] - Tons of bugs in php implementation
2565 * [THRIFT-1065] - Unexpected exceptions not proper handled on JS
2566 * [THRIFT-1076] - Erlang Thrift socket server has a bug that causes java thrift client of framed binary client to throw "out of sequence" exception
2567 * [THRIFT-1057] - casts in TBinaryProtocol.tcc causing "dereferencing type-punned pointer will break strict-aliasing rules" warnings from gcc
2568 * [THRIFT-1055] - csharp TServerSocket and TSocket do not disable Nagle via Socket.NoDelay = true like cpp and java do
2569 * [THRIFT-1054] - explicit call to PKG_PROG_PKG_CONFIG is missing and first use of PKG_CHECK_MODULES may not happen, causes mono detection to fail
2570 * [THRIFT-1117] - JavaScript Unit Test does not work anymore because libthrift*.jar where moved by Maven Deployment
2571 * [THRIFT-1111] - The HTML generator does not distinguish between string and binary types
2572 * [THRIFT-1032] - "make dist" fails due to c_glib problem
2573 * [THRIFT-1036] - Auto-generated C++ code fails to compile with "-Werror -Wextra -Wall" g++ compiler flags
2574 * [THRIFT-1041] - TDeserializer holds onto a reference of the array it reads after it is done deserializing
2575 * [THRIFT-1106] - C++ code TAsyncProtocolProcessor.h & TAsyncBufferProcessor.h dont have virtual functions but no virtual destructor. Causes warnings on -Wall
2576 * [THRIFT-1105] - OCaml generator does not prefix methods of included structs with their type
2577 * [THRIFT-1104] - INSTALLDIRS should be included in configure script
2578 * [THRIFT-1102] - typo in configure.ac: "==" operator in 'test' (instead of"'=")
2579 * [THRIFT-1101] - bytebuffer length calculation in TBinaryProtocol writeBinary
2580 * [THRIFT-1098] - Undefined properties in TBinaryProtocolFactory
2581 * [THRIFT-1081] - PHP tests broken and somewhat incomplete
2582 * [THRIFT-1080] - erlang test's 'make' fails on Mac OSX
2583 * [THRIFT-1078] - ThriftTest.thrift generates invalid PHP library
2584 * [THRIFT-1120] - proto.WriteListEnd being called in the wrong place
2585 * [THRIFT-1119] - TJSONProtocol fails to UTF8 decode strings
2586 * [THRIFT-867] - PHP accelerator module's output transport is incompatible with TFramedTransport
2587 * [THRIFT-826] - PHP TSocket Write Timeout
2588 * [THRIFT-835] - Bad AS3 syntax in constructors that set default values
2589 * [THRIFT-788] - thrift_protocol.so: multiget/multiget_slice does not handle more than 17 keys correctly
2590 * [THRIFT-125] - OCaml libraries don't compile with 32-bit ocaml
2591 * [THRIFT-342] - PHP: can't have sets of complex types
2592 * [THRIFT-731] - configure doesn't check for ant >= 1.7
2593 * [THRIFT-690] - Update TApplicationException codes
2594 * [THRIFT-638] - BufferedTransport + C extensions block until recv timeout is reached on last fread call
2595
2596## Dependency upgrade
2597 * [THRIFT-1177] - Update thrift to reflect changes in Go's networking libraries
2598
2599## Improvement
2600 * [THRIFT-1155] - Remove log4j dependency from java client
2601 * [THRIFT-1151] - Produce more informative runtime error in case of schema and data mismatch during serialization
2602 * [THRIFT-1207] - Support DESTDIR on "make install" of ruby libs
2603 * [THRIFT-1199] - Union structs should have generated methods to test whether a specific field is currently set
2604 * [THRIFT-1233] - Remove unused include in generated C++ code
2605 * [THRIFT-1189] - Ruby deserializer speed improvements
2606 * [THRIFT-1170] - Thrift Generated Code and Java 5
2607 * [THRIFT-1174] - Publish as3 client implementation via Maven for use by flex-mojos users
2608 * [THRIFT-1225] - TCompactProtocol for PHP
2609 * [THRIFT-1221] - Remove SimpleCallback.h
2610 * [THRIFT-1217] - Use evutil_socketpair instead of pipe (Windows port)
2611 * [THRIFT-1216] - build Java Library behind a proxy
2612 * [THRIFT-1231] - Remove bogus include
2613 * [THRIFT-1213] - Membuffer should provide a way to get back the buffer
2614 * [THRIFT-1237] - Java fb303 missing some methods
2615 * [THRIFT-1063] - Fix Erlang Tutorial Files
2616 * [THRIFT-1053] - Make remote client's IP address available for all socket related transports
2617 * [THRIFT-1109] - Deploy fb303 along side libthrift to maven repo
2618 * [THRIFT-1107] - improvement for compiler-generated python for 'None' object comparisons
2619 * [THRIFT-1069] - Add command line option to prevent thrift from inserting gen-* directories
2620 * [THRIFT-1049] - Allow for TServerSocket python library to bind to a specific host
2621 * [THRIFT-1126] - Extending struct_info for erlang bindings
2622 * [THRIFT-1100] - python TSSLSocket improvements, including certificate validation
2623 * [THRIFT-994] - Don't try to invoke phpize if we don't have it
2624 * [THRIFT-993] - Some improvements in C++ stubs for oneway operations
2625 * [THRIFT-997] - Using valueOf for base types in getFieldValue
2626 * [THRIFT-418] - Don't do runtime sorting of struct fields
2627 * [THRIFT-151] - TSSLServerSocket and TSSLSocket implementation
2628 * [THRIFT-27] - Generated erlang types don't contain default values for records
2629 * [THRIFT-113] - to-string methods should omit optional null fields from output
2630 * [THRIFT-363] - Maven Deploy
2631 * [THRIFT-447] - Make an abstract base Client class so we can generate less code
2632 * [THRIFT-627] - should c++ have setters for optional fields?
2633
2634## New Feature
2635 * [THRIFT-1236] - Erlang Reconnecting Thrift Client
2636 * [THRIFT-1021] - Framed transport support for OCaml
2637 * [THRIFT-1068] - Python SSL Socket Support
2638 * [THRIFT-1103] - TZlibTransport for python, a zlib compressed transport
2639 * [THRIFT-1083] - Preforking python process pool server
2640 * [THRIFT-999] - Add TForkingServer
2641
2642## Sub-task
2643 * [THRIFT-1152] - Attributes from private to protected
2644 * [THRIFT-1038] - Generated Java code for structures containing binary fields (or collections thereof) are not serializable (in the Java sense) even though they implement java.io.Serializable
2645
2646## Task
2647 * [THRIFT-892] - Refactor erlang build system with rebar
2648
2649## Wish
2650 * [THRIFT-625] - Add support for 'Go'
2651
2652
2653
2654Thrift 0.6.1
2655--------------------------------------------------------------------------------
2656## Bug
2657 * [THRIFT-1133] - Java and JavaScript tutorial is broken since we have Java maven deployment
2658 * [THRIFT-1131] - C# JSON Protocol is unable to decode escaped characters in string
2659 * [THRIFT-1074] - .keystore and .truststore are missing from the 0.6.0 distribution
2660
2661## Improvement
2662 * [THRIFT-1109] - Deploy fb303 along side libthrift to maven repo
2663 * [THRIFT-363] - Maven Deploy
2664
2665## Question
2666 * [THRIFT-1206] - did the THRIFT 0.6.1 merge THRIFT-563 ?
2667
2668## Sub-task
2669 * [THRIFT-1163] - How can i use multi service in one program?
2670
2671## Task
2672 * [THRIFT-1112] - Apply THRIFT-363 to 0.6 branch
2673 * [THRIFT-1113] - Apply THRIFT-1074 to 0.6 branch
2674
2675
2676
2677Thrift 0.6
2678--------------------------------------------------------------------------------
2679## Bug
2680 * [THRIFT-1020] - OCaml compiler generates invalid OCaml
2681 * [THRIFT-1015] - TUnion does not handle ByteBuffer in toString
2682 * [THRIFT-1013] - generated java code may have name clashes with thrift library
2683 * [THRIFT-1009] - TUnion does not correctly deep copy a ByteBuffer
2684 * [THRIFT-1032] - "make dist" fails due to c_glib problem
2685 * [THRIFT-868] - Referencing constant values doesn't work with with typedef types
2686 * [THRIFT-971] - java module can't be compiled without ivy and network connection
2687 * [THRIFT-970] - Under heavy load, THttpClient may fail with "too many open files"
2688 * [THRIFT-969] - Java Tutorial broken, move CalculatorHandler to a separate file
2689 * [THRIFT-807] - JavaScript: Initialization of Base Types with 0 instead of null
2690 * [THRIFT-955] - Thrift compiler for Windows uses lowercase names and directories which is inconsistent with compiling on other platforms
2691 * [THRIFT-992] - Naming convention in C# constructor is not consistent with other fields causes compile errors
2692 * [THRIFT-1008] - byte[] accessors throw NPE on unset field
2693 * [THRIFT-1006] - Impossible to correctly qualify an enum constant in an external thrift file
2694 * [THRIFT-950] - Haskell bindings treat 'byte' as unsigned 8-bit int (Data.Word.Word8), java/cpp as signed (byte/int8_t).
2695 * [THRIFT-975] - lib/c_glib/README is missing => breaks make dist
2696 * [THRIFT-944] - Support all version-4s of base
2697 * [THRIFT-939] - optional binary fields throw NPE on default byte[] getters
2698 * [THRIFT-935] - PHP Extension aborts the build if php-config is not installed
2699 * [THRIFT-933] - Haskell's Thrift.cabal has warnings
2700 * [THRIFT-932] - Haskell tests need to be run through 'make check' (and probably 'cabal check') too
2701 * [THRIFT-904] - C# TSocket should disable nagle and linger
2702 * [THRIFT-941] - Make PHP C Extension use the defined Protocol writeMessageBegin function
2703 * [THRIFT-940] - 'make check' fails if boost is not in the std include and link paths
2704 * [THRIFT-924] - Fix generated php structure constants
2705 * [THRIFT-979] - ruby bindings used to work on jruby
2706 * [THRIFT-977] - Hex Conversion Bug in C++ TJSONProtocol
2707 * [THRIFT-347] - PHP TSocket Timeout Issues
2708 * [THRIFT-517] - TExceptions thrown by server result in cryptic error message on client - Tried to read 4 bytes, but only got 0 bytes
2709
2710## Improvement
2711 * [THRIFT-1024] - Add Python Twisted example to the Tutorial
2712 * [THRIFT-958] - Change accessmodifer on trans_ field in the FrameBuffer class to public.
2713 * [THRIFT-957] - THsHaServer: Change access modifier of the invoker field.
2714 * [THRIFT-1002] - CodeStyle: t_c_glib_generator.cc
2715 * [THRIFT-1005] - Give unions byte[] signature methods to go along with their ByteBuffer counterparts
2716 * [THRIFT-951] - Add a new isServing() method to TServer
2717 * [THRIFT-943] - Silly readme typo fix.
2718 * [THRIFT-961] - JavaScript TestSuite using ant/ivy and Java's ServerTestBase Handler
2719 * [THRIFT-960] - add TestServer, TestNonblockingServer and TestClient again
2720 * [THRIFT-949] - Modify the TEnum interface so it defines a method similar to findByValue
2721 * [THRIFT-946] - Augment FieldValueMetaData so it differentiates 'string' and 'binary' fields.
2722 * [THRIFT-903] - custom ThreadFactory in THsHaServer
2723 * [THRIFT-913] - Test Case for Url encoded strings + simple enhancement to lib/js/test/RunTestServer.sh
2724 * [THRIFT-926] - Miscellaneous C++ improvements
2725 * [THRIFT-929] - Improvements to the C++ test suite
2726 * [THRIFT-893] - add JavaScript to the tutorial examples
2727 * [THRIFT-1003] - Polishing c_glib code
2728 * [THRIFT-71] - Debian packaging for thrift
2729
2730## New Feature
2731 * [THRIFT-1033] - Node.js language target
2732 * [THRIFT-947] - Provide a helper method to determine the TProtocol used to serialize some data.
2733 * [THRIFT-928] - Make more statistics available in C++ servers
2734 * [THRIFT-922] - Templatized [de]serialization code for C++
2735 * [THRIFT-923] - Event-driven client and server support for C++
2736 * [THRIFT-925] - Provide name<->value map for enums in C++
2737 * [THRIFT-927] - Add option to modify the PHP include path
2738 * [THRIFT-377] - TFileTransport port in Java
2739 * [THRIFT-106] - TSSLServerSocket
2740 * [THRIFT-582] - C implementation of Thrift
2741 * [THRIFT-745] - Make it easier to instantiate servers
2742
2743## Sub-task
2744 * [THRIFT-1038] - Generated Java code for structures containing binary fields (or collections thereof) are not serializable (in the Java sense) even though they implement java.io.Serializable
2745
2746## Task
2747 * [THRIFT-862] - Async client issues / improvements
2748
2749## Test
2750 * [THRIFT-581] - Add a testsuite for txThrift (Twisted)
2751
2752
2753
2754Thrift 0.5.0 - Incubating
2755--------------------------------------------------------------------------------
2756THRIFT-505 Build Make configure give a summary of the enabled components (David Reiss)
2757THRIFT-506 Build Allow Thrift to be built without the C++ library (David Reiss)
2758THRIFT-844 Build Build Requirements state autoconf 2.59+ is required, but 2.60+ is needed (Harlan Lieberman-Berg)
2759THRIFT-850 Build Perl runtime requires Bit::Vector which may not be installed by default, but configure does not fail (Michael Lum)
2760THRIFT-854 Build Provide configure option and make rules to build/install php extension (Anthony Molinaro)
2761THRIFT-858 Build Have bootstrap.sh check for a suitable autoconf version before running (David Reiss)
2762THRIFT-871 Build Thrift compiler for WIndows (binary distribution) (David Reiss)
2763THRIFT-323 C# TJSONProtocol (Roger Meier)
2764THRIFT-634 C# C# Compiler Generates Incorrect Code For Fields which begin with an uppercase letter (Jon S Akhtar)
2765THRIFT-881 C# add csharp to the tutorial (Roger Meier)
2766THRIFT-856 C++ Building cpp library fails on OS X with malloc and free not being declared in scope (James Clarke)
2767THRIFT-865 C++ C++ compiler build depends on libfl even when flex/lex not detected (David Reiss)
2768THRIFT-900 C++ Unix domain socket (Roger Meier)
2769THRIFT-920 C++ C++ Test and Tutorial does not compile anymore due to the change within Enum handling (Roger Meier)
2770THRIFT-567 C++ Can't immediately stop a TSimpleServer thread that is idle (Rush Manbert)
2771THRIFT-756 C++ Exposing TSocket(int) constructor to public (Rajat Goel)
2772THRIFT-798 C++ TNonblockingServer leaks resources when destroyed (David Reiss)
2773THRIFT-812 C++, Python Demo of Thrift over ZeroMQ (David Reiss)
2774THRIFT-629 Cocoa Unused Field In TSocketServer Appears To Break iPhone Build (Jon S Akhtar)
2775THRIFT-838 Cocoa Generated Cocoa classes have useless @dynamic declarations (Kevin Ballard)
2776THRIFT-805 Cocoa Don't generate process_XXXX methods for oneway methods (Brad Taylor)
2777THRIFT-507 Compiler Remove the compiler's dependency on Boost (David Reiss)
2778THRIFT-895 Compiler (General) Thrift compiler does not allow two different enumerations to have the same key name for one of the enum values (David Reiss)
2779THRIFT-852 Compiler (General) Missing newline causes many compiler warnings (Anthony Molinaro)
2780THRIFT-877 Compiler (General) smalltalk namespace doesn't work (Bruce Lowekamp)
2781THRIFT-897 Compiler (General) Don't allow unqualified constant access to enum values (Bryan Duxbury)
2782THRIFT-9 Compiler (General) Add a default namespace declaration for all languages (David Reiss)
2783THRIFT-599 Erlang Don't use unnecessary processes in the Erlang transports and clients (David Reiss)
2784THRIFT-646 Erlang Erlang library is missing install target (David Reiss)
2785THRIFT-698 Erlang Generated module list should contain atoms, not strings (Anthony Molinaro)
2786THRIFT-866 Erlang term() in spec definitions seems to not work in erlang R12 (Anthony Molinaro)
2787THRIFT-886 Erlang Dialyzer warning (Anthony Molinaro)
2788THRIFT-785 Erlang Framed transport server problems (Anthony Molinaro)
2789THRIFT-884 HTML HTML Generator: add Key attribute to the Data Types Tables (Roger Meier)
2790THRIFT-652 Haskell Generated field name for strut is not capitalized correctly (Christian Lavoie)
2791THRIFT-743 Haskell compile error with GHC 6.12.1 (Christian Lavoie)
2792THRIFT-901 Haskell Allow the bindings to compile without -fglasgow-exts and with -Wall -Werror (Christian Lavoie)
2793THRIFT-905 Haskell Make haskell thrift bindings use automake to compile and install (Christian Lavoie)
2794THRIFT-906 Haskell Improve type mappings (Christian Lavoie)
2795THRIFT-914 Haskell Make haskell bindings 'easily' compilable (Christian Lavoie)
2796THRIFT-918 Haskell Make haskell tests run again (Christian Lavoie)
2797THRIFT-919 Haskell Update Haskell bindings README (Christian Lavoie)
2798THRIFT-787 Haskell Enums are not read correctly (Christian Lavoie)
2799THRIFT-250 Java ExecutorService as a constructor parameter for TServer (Ed Ceaser)
2800THRIFT-693 Java Thrift compiler generated java code that throws compiler warnings about deprecated methods. (Bryan Duxbury)
2801THRIFT-843 Java TNonblockingSocket connects without a timeout (Bryan Duxbury)
2802THRIFT-845 Java async client does not respect timeout (Ning Liang)
2803THRIFT-870 Java Java constants don't get Javadoc comments (Bryan Duxbury)
2804THRIFT-873 Java Java tests fail due to Too many open files (Todd Lipcon)
2805THRIFT-876 Java Add SASL support (Aaron T. Myers)
2806THRIFT-879 Java Remove @Override from TUnion.clear (Dave Engberg)
2807THRIFT-882 Java deep copy of binary fields does not copy ByteBuffer characteristics (arrayOffset, position) (Bryan Duxbury)
2808THRIFT-888 Java async client should also have nonblocking connect (Eric Jensen)
2809THRIFT-890 Java Java tutorial doesn't work (Todd Lipcon)
2810THRIFT-894 Java Make default accessors for binary fields return byte[]; provide new accessors to get ByteBuffer version (Bryan Duxbury)
2811THRIFT-896 Java TNonblockingSocket.isOpen() returns true even after close() (Eric Jensen)
2812THRIFT-907 Java libfb303 doesn't compile in 0.4.0 (Todd Lipcon)
2813THRIFT-912 Java Improvements and bug fixes to SASL implementation (Todd Lipcon)
2814THRIFT-917 Java THsHaServer should not accept an ExecutorService without catching RejectedExecutionException (Ed Ceaser)
2815THRIFT-931 Java Use log4j for Java tests (Todd Lipcon)
2816THRIFT-880 JavaME JavaME code generator and runtime library (Dave Engberg)
2817THRIFT-846 JavaScript JavaScript Test Framwork: extended Testcases (Roger Meier)
2818THRIFT-885 JavaScript Url encoded strings never get decoded? How do we fix this? (T Jake Luciani)
2819THRIFT-911 JavaScript (JavaScript compiler) Const structs, maps, sets, and lists generate a trailing comma (T Jake Luciani)
2820THRIFT-860 OCaml copy method and reset method (Lev Walkin)
2821THRIFT-682 PHP PHP extension doesn't compile on Mac OS X (Bryan Duxbury)
2822THRIFT-851 PHP php extension fails to compile on centos 5.x (Todd Lipcon)
2823THRIFT-840 Perl Perl protocol handler could be more robust against unrecognised types (Conrad Hughes)
2824THRIFT-758 Perl incorrect deference in exception handling (Yann Kerherve)
2825THRIFT-257 Python Support validation of required fields (Esteve Fernandez)
2826THRIFT-335 Python Compact Protocol for Python (David Reiss)
2827THRIFT-596 Python Make Python's TBufferedTransport use a configurable input buffer (David Reiss)
2828THRIFT-597 Python Python THttpServer performance improvements (David Reiss)
2829THRIFT-598 Python Allow Python's threading servers to use daemon threads (David Reiss)
2830THRIFT-666 Python Allow the handler to override HTTP responses in THttpServer (David Reiss)
2831THRIFT-673 Python Generated Python code has whitespace issues (Ian Eure)
2832THRIFT-721 Python THttpClient ignores url parameters (Thomas Kho)
2833THRIFT-824 Python TApplicationException.__str__() refers to class constants as globals (Peter Schuller)
2834THRIFT-855 Python Include optimized compiled python objects in install (Anthony Molinaro)
2835THRIFT-859 Python Allow py:twisted to be generated in different namespace than py (Bruce Lowekamp)
2836THRIFT-869 Python TSocket.py on Mac (and FreeBSD) doesn't handle ECONNRESET from recv() (Steven Knight)
2837THRIFT-875 Python Include python setup.cfg in dist (Anthony Molinaro)
2838THRIFT-610 Ruby binary_protocol.rb segfaults [line 86] (Unassigned)
2839THRIFT-899 Ruby Ruby read timeouts can sometimes be 2x what they should be (Ryan King)
2840THRIFT-909 Ruby allow block argument to struct constructor (Michael Stockton)
2841THRIFT-456 Test Suite Bad IP address string in test/cpp/src/main.cpp (Rush Manbert)
2842
2843
2844Thrift 0.4.0 - Incubating
2845--------------------------------------------------------------------------------
2846THRIFT-650 Build Make Check fails on Centos/OSX with 0.2.0 tarball (Anthony Molinaro)
2847THRIFT-770 Build Get 'make dist' to work without first compiling source code (Anthony Molinaro)
2848THRIFT-160 C# Created THttpTransport for the C# library based on WebHttpRequest (Michael Greene)
2849THRIFT-834 C# THttpClient resends contents of message after transport errors (Anatoly Fayngelerin)
2850THRIFT-247 C++ THttpServer Transport (Unassigned)
2851THRIFT-676 C++ Change C++ code generator so that generated classes can be wrapped with SWIG (Unassigned)
2852THRIFT-570 Compiler Thrift compiler does not error when duplicate method names are present (Bruce Simpson)
2853THRIFT-808 Compiler Segfault when constant declaration references a struct field that doesn't exist (Bryan Duxbury)
2854THRIFT-646 Erlang Erlang library is missing install target (Anthony Molinaro)
2855THRIFT-544 General multiple enums with the same key generate invalid code (Ben Taitelbaum)
2856THRIFT-434 General ruby compiler should warn when a reserved word is used (Michael Stockton)
2857THRIFT-799 General Files missing proper Apache license header (Bryan Duxbury)
2858THRIFT-832 HTML HTML generator shows unspecified struct fields as 'required' (Bryan Duxbury)
2859THRIFT-226 Java Collections with binary keys or values break equals() (Bryan Duxbury)
2860THRIFT-484 Java Ability to use a slice of a buffer instead of a direct byte[] for binary fields (Bryan Duxbury)
2861THRIFT-714 Java maxWorkerThreads parameter to THsHaServer has no effect (Bryan Duxbury)
2862THRIFT-751 Java Add clear() method to TBase (Bryan Duxbury)
2863THRIFT-765 Java Improved string encoding and decoding performance (Bryan Duxbury)
2864THRIFT-768 Java Async client for Java (Bryan Duxbury)
2865THRIFT-774 Java TDeserializer should provide a partialDeserialize method for primitive types (Piotr Kozikowski)
2866THRIFT-783 Java .equals java method is broken on structs containing binary-type fields (Unassigned)
2867THRIFT-804 Java CompareTo is broken for unions set to map, set, or list (Bryan Duxbury)
2868THRIFT-814 Java Include a TServlet in the standard Thrift distribution (Mathias Herberts)
2869THRIFT-818 Java Async client doesn't send method args (Bryan Duxbury)
2870THRIFT-830 Java Switch binary field implementation from byte[] to ByteBuffer (Bryan Duxbury)
2871THRIFT-831 Java FramedTransport implementation that reuses its buffers (Bryan Duxbury)
2872THRIFT-833 Java build.xml in lib/java is missing a classpathref attribute for the javadoc task (Bryan Duxbury)
2873THRIFT-836 Java Race condition causes CancelledKeyException in TAsyncClientManager (Bryan Duxbury)
2874THRIFT-842 Java Upgrade to current version of commons-lang (2.5 instead of 2.4) and/or change dependency in ivy.xml to not be exact (Bryan Duxbury)
2875THRIFT-815 JavaScript Deserialization of lists is critically broken. (T Jake Luciani)
2876THRIFT-827 OCaml OCaml generator to take default values into account (Lev Walkin)
2877THRIFT-647 PHP PHP library is missing install target (Anthony Molinaro)
2878THRIFT-682 PHP PHP extension doesn't compile on Mac OS X (Bryan Duxbury)
2879THRIFT-718 PHP Thrift PHP library includes closing tags and extraneous whitespace (Nicholas Telford)
2880THRIFT-778 PHP PHP socket listening server (Nick Jones)
2881THRIFT-780 PHP PHP extension sometimes causes an abort with two exceptions at the same time (David Reiss)
2882THRIFT-837 PHP PHP accelerator bug for writes > 8k (Thomas Kho)
2883THRIFT-782 Perl Perl code for writing containers doesn't count length of write*Begin or write*End (Conrad Hughes)
2884THRIFT-395 Python Python library + compiler does not support unicode strings (Unassigned)
2885THRIFT-133 Ruby 'namespace ruby' should error out, or be an alias to 'namespace rb' (Bryan Duxbury)
2886THRIFT-664 Ruby Ruby extension fails to build with Ruby 1.9.1 (Rajesh Malepati)
2887THRIFT-699 Ruby Excise unused "native protocol method table" stuff from thrift_native (Bryan Duxbury)
2888THRIFT-767 Ruby ruby compiler does not keep comments for enum values (Bryan Duxbury)
2889THRIFT-811 Ruby http_client_transport.rb: allow custom http headers (Tony Kamenick)
2890THRIFT-459 Ruby Ruby installation always tries to write to /Library/Ruby/site (Matthieu Imbert)
2891
2892
2893Thrift 0.1.0 - Incubating (not released)
2894--------------------------------------------------------------------------------
2895Compatibility Breaking Changes:
2896 C++:
2897 * It's quite possible that regenerating code and rebuilding will be
2898 required. Make sure your headers match your libs!
2899
2900 Java:
2901
2902 Python:
2903
2904 Ruby:
2905 * Generated files now have underscored names [THRIFT-421]
2906 * The library has been rearranged to be more Ruby-like [THRIFT-276]
2907
2908 Erlang:
2909 * Generated code will have to be regenerated, and the new code will
2910 have to be deployed atomically with the new library code [THRIFT-136]
2911
2912New Features and Bug Fixes:
2913 C++:
2914 * Support for TCompactProtocol [THRIFT-333]
2915
2916 Java:
2917 * Support for TCompactProtocol [THRIFT-110]
2918
2919 Python:
2920 * Support for Twisted [THRIFT-148]
2921
2922 Ruby:
2923 * Support for TCompactProtocol [THRIFT-332]
2924