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