{"push_id":1152787911,"size":84,"distinct_size":84,"ref":"refs/heads/sockjs-4.1","head":"60709a24009408bcc2bbea9b34f7e4b6c455a420","before":"de0acf5a37d0cdbd17708f7fa1986825e9fd8eaf","commits":[{"sha":"e59d0e9efb8d1d18a07465c53d0356373be55b6d","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Introduce CodecOutputList to reduce overhead of encoder/decoder\n\nMotivation:\n\n99dfc9ea799348430a1c25776ce30a95bc10a1ff introduced some code that will more frequently try to forward messages out of the list of decoded messages to reduce latency and memory footprint. Unfortunally this has the side-effect that RecycleableArrayList.clear() will be called more often and so introduce some overhead as ArrayList will null out the array on each call.\n\nModifications:\n\n- Introduce a CodecOutputList which allows to not null out the array until we recycle it and also allows to access internal array with extra range checks.\n- Add benchmark that add elements to different List implementations and clear them\n\nResult:\n\nLess overhead when decode / encode messages.\n\nBenchmark                                     (elements)   Mode  Cnt         Score        Error  Units\nCodecOutputListBenchmark.arrayList                     1  thrpt   20  24853764.609 ± 161582.376  ops/s\nCodecOutputListBenchmark.arrayList                     4  thrpt   20  17310636.508 ± 930517.403  ops/s\nCodecOutputListBenchmark.codecOutList                  1  thrpt   20  26670751.661 ± 587812.655  ops/s\nCodecOutputListBenchmark.codecOutList                  4  thrpt   20  25166421.089 ± 166945.599  ops/s\nCodecOutputListBenchmark.recyclableArrayList           1  thrpt   20  24565992.626 ± 210017.290  ops/s\nCodecOutputListBenchmark.recyclableArrayList           4  thrpt   20  18477881.775 ± 157003.777  ops/s\n\nTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 246.748 sec - in io.netty.handler.codec.CodecOutputListBenchmark","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/e59d0e9efb8d1d18a07465c53d0356373be55b6d"},{"sha":"43e91c2476e19f58744edb1263a79e8d3e67bc47","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Correctly implement DefaultByteBufHolder.equals(...) and hashCode()\n\nMotivation:\n\nDefaultByteBufHolder.equals(...) and hashCode() should be implemented so it works correctly with instances that share the same content.\n\nModifications:\n\nAdd implementations and a unit-test.\n\nResult:\n\nHave correctly working equals(...) and hashCode() method","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/43e91c2476e19f58744edb1263a79e8d3e67bc47"},{"sha":"b83ffcc4471ce5cc68b39fc3545853ac5e2a5f1b","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Add timeout to PooledByteBufAllocatorTest\n\nMotivation:\n\nSome tests in PooledByteBufAllocatorTest are blocking on a CountDownLatch. We should use a timeout on these tests so these will not block forever on a failure.\n\nModifications:\n\nAdd timeout param to @Test annotation\n\nResult:\n\nHave sane timeouts on tests.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/b83ffcc4471ce5cc68b39fc3545853ac5e2a5f1b"},{"sha":"2e352b75ac249b334459dabcab4a5e7030b4080f","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Remove unused class\n\nMotivation:\n\nWe should remove unused classes that are package-private\n\nModifications:\n\nRemove unused class\n\nResult:\n\nLess cruft in code-base.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/2e352b75ac249b334459dabcab4a5e7030b4080f"},{"sha":"d41f0764190c7e24d44eadeeb87471400e3580ae","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Add more tests for PoolArenaMetric\n\nMotivation:\n\nWe should add some more tests for PoolarenaMetric\n\nModifications:\n\nAdd more tests\n\nResult:\n\nBetter test coverage for metrics","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/d41f0764190c7e24d44eadeeb87471400e3580ae"},{"sha":"e10dca76017fee3bcea251f28933c16f4238ad52","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Mark Recycler.recycle(...) deprecated and update usage.\n\nMotivation:\n\nRecycler.recycle(...) should not be used anymore and be replaced by Handle.recycle().\n\nModifications:\n\nMark it as deprecated and update usage.\n\nResult:\n\nCorrectly document deprecated api.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/e10dca76017fee3bcea251f28933c16f4238ad52"},{"sha":"2a14f749796ad754ab43d89e69f55ea44ee758a6","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Ensure all methods are correctly override in *LeakAware*ByteBuf implementations\n\nMotivation:\n\nWe missed to override a few methods and so some actions on the ByteBuf failed.\n\nModifications:\n\n- Override all methods\n- Add unit tests to ensure all is fixed.\n\nResult:\n\nAll *LeakAware*ByteBuf have correct implementations","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/2a14f749796ad754ab43d89e69f55ea44ee758a6"},{"sha":"7547a448e00e4766108baa7ee21886647dee5b52","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"[#4906] Ensure addLast(...) works as expected in EmbeddedChannel\n\nMotivation:\n\nIf the user will use addLast(...) on the ChannelPipeline of EmbeddedChannel after its constructor was run it will break the EmbeddedChannel as it will not be able to collect inbound messages and exceptions.\n\nModifications:\n\nEnsure addLast(...) work as expected by move the logic of handling messages and exceptions ti protected methods of DefaultChannelPipeline and use a custom implementation for EmbeddedChannel\n\nResult:\n\naddLast(...) works as expected when using EmbeddedChannel.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/7547a448e00e4766108baa7ee21886647dee5b52"},{"sha":"0838f223e1cd63539eae2828ce4d883d9a58925f","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Decouple AbstractChannel and AbstractChannelHandlerContext\n\nMotivation:\n\nWe do a \"blind\" cast to AbstractChannel in AbstractChannelHandlerContext which we should better no do. It would be better to decouble AbstractChannelHandlerContext from AbstractChannel.\n\nModifications:\n\nDecouble AbstractChannelHandlerContext from AbstractChannel by move logic to DefaultChannelPipeline\n\nResult:\n\nLess coubling and less casting.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/0838f223e1cd63539eae2828ce4d883d9a58925f"},{"sha":"a729e0fcd94009905d219665bdd069eb31433b7c","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Decouple DefaultChannelPipeline from AbstractChannel\n\nMotivation:\n\nDefaultChannelPipeline was tightly coupled to AbstractChannel which is not really needed.\n\nModifications:\n\nMove logic of calling handlerAdded(...) for handlers that were added before the Channel was registered to DefaultChannelPipeline by making it part of the head context.\n\nResult:\n\nLess coupling and so be able to use DefaultChannelPipeline also with other Channel implementations that not extend AbstractChannel","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/a729e0fcd94009905d219665bdd069eb31433b7c"},{"sha":"a5006c1969e6bfab2d78699de190441e518f34b8","author":{"name":"Xiaoyan Lin","email":"42fc9537e1e28d23ccf8af2751cbd6b6c197cf4d@gmail.com"},"message":"Add a EventLoopGroup.register(ChannelPromise)\n\nMotivation:\n\nEventLoopGroup.register doesn't need the Channel paramter when ChannelPromise is provided as we can get the Channel from ChannelPromise. Resolves #2422.\n\nModifications:\n\n- Add EventLoopGroup.register(ChannelPromise)\n- Deprecate EventLoopGroup.register(Channel, ChannelPromise)\n\nResult:\n\nEventLoopGroup.register is more convenient as people only need to set one parameter.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/a5006c1969e6bfab2d78699de190441e518f34b8"},{"sha":"7b25402e80979a075387fae5a55cf99fe1ada425","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Add CompositeByteBuf.addComponent(boolean ...) method to simplify usage\n\nMotivation:\n\nAt the moment the user is responsible to increase the writer index of the composite buffer when a new component is added. We should add some methods that handle this for the user as this is the most popular usage of the composite buffer.\n\nModifications:\n\nAdd new methods that autoamtically increase the writerIndex when buffers are added.\n\nResult:\n\nEasier usage of CompositeByteBuf.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/7b25402e80979a075387fae5a55cf99fe1ada425"},{"sha":"06d76eeea4667a5b9a64ea892bf2865e30408ea0","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Update tcnative version\n\nMotivation:\n\nPrevious tcnative version had a bug with the uberjar on windows.\n\nModifications:\n\nUpdate version.\n\nResult:\n\nDepend on latest tcnative version.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/06d76eeea4667a5b9a64ea892bf2865e30408ea0"},{"sha":"26a175cd94c50aebdd3bdcba8e3cd0a30f664870","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"Fix flacky test which was missed when commit 8fe3c83e4ca9a64c03f5adcb9f056d9e9440a389","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/26a175cd94c50aebdd3bdcba8e3cd0a30f664870"},{"sha":"2618c2a649772624bb6011e5e63455c3c81be0b0","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"[#5239] Allow adding handlers to pipeline with null name.\n\nMotivation:\n\nWhile doing 8fe3c83e4ca9a64c03f5adcb9f056d9e9440a389 I made a change which disallowed using null as name for handlers in the pipeline (this generated a new name before).\n\nModifications:\n\nRevert to old behaviour and adding test case.\n\nResult:\n\nAllow null name again","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/2618c2a649772624bb6011e5e63455c3c81be0b0"},{"sha":"f5d58e2e1ae8f3eae8e69fb67aff4544bab50ee3","author":{"name":"Scott Mitchell","email":"376e7fb274235a95251d04d8b0a11832d8c1ba7e@apple.com"},"message":"DefaultPromise concurrency bug\n\nMotivation:\nIf the executor changes while listeners are added and notification of listeners is being done then listeners can be notified out of order and concurrently. We should ensure that only one executor is used at any given time to notify listeners and ensure the listeners are notified in FIFO order.\n\nModifications:\n- Move the notifyingListeners member variable from DefaultPromise into the synchronized block to prevent concurrent notification of listeners and preserve FIFO notification order\n\nResult:\nIf the executor is changed for a DefaultPromise the listener notification order should be FIFO.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/f5d58e2e1ae8f3eae8e69fb67aff4544bab50ee3"},{"sha":"b3c56d5f694b281f986916cbe623be1cba258c11","author":{"name":"Scott Mitchell","email":"376e7fb274235a95251d04d8b0a11832d8c1ba7e@apple.com"},"message":"DefaultPromise StackOverflowError protection\n\nMotivation:\nf2ed3e6ce8039d142e4c047fcc9cf09409105243 removed the previous mechanism for StackOverflowError because it didn't work in all cases (i.e. ImmediateExecutor). However if a chain of listeners which complete other promises is formed there is still a possibility of a StackOverflowError.\n\nModifications:\n- Use a ThreadLocal to save any DefaultPromises which could not be notified due to the stack being too large. After the first DefaultPromise on the stack completes notification this ThreadLocal should be used to notify any DefaultPromises which have not yet been notified.\n\nResult:\nDefaultPromise has StackOverflowError protection that works with all EventExecutor types.","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/b3c56d5f694b281f986916cbe623be1cba258c11"},{"sha":"79a06eaede237e28ef72e9e4c72c9e8615967a87","author":{"name":"nmittler","email":"aaeccd3650540d3bc7d551ab86ef91ff64a0f0b1@google.com"},"message":"Fix NPE in Http2ConnectionHandler.onHttpServerUpgrade\n\nMotivation:\n\nPerforming a server upgrade with a new initial flow control window will cause an NPE in the DefaultHttp2RemoteFlowController. This is due to the fact that the monitor does not check whether or not the channel is writable.\n\nModifications:\n\nAdded a check for channel writability before calling `writePendingBytes`. Also fixed a unit test that was supposed to be testing this :).\n\nResult:\n\nFixes #5301","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/79a06eaede237e28ef72e9e4c72c9e8615967a87"},{"sha":"446b38db5220a3934064ee4e26f40d81dfa6b714","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"[maven-release-plugin] prepare release netty-4.1.0.Final","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/446b38db5220a3934064ee4e26f40d81dfa6b714"},{"sha":"6ca49d133693fc583e439f87ac91874bd602a21f","author":{"name":"Norman Maurer","email":"aea02ec796b8c3b5db26f08a9fb9d35935be1996@apple.com"},"message":"[maven-release-plugin] prepare for next development iteration","distinct":true,"url":"https://api.github.com/repos/danbev/netty/commits/6ca49d133693fc583e439f87ac91874bd602a21f"}]}
{"actor":{"display_login":"danbev"}}