Netty 4.0.56.Final and 4.1.21.Final released
I'm happy to announce the latest bug-fix releases for our 4.0.x and 4.1.x series. These releases contains bug-fixes, performance enhancements and feature so we encourage everyone to upgrade.
The most important changes for 4.0.56.Final and 4.1.21.Final are:
- DefaultChannelPipeline will not invoke handler if events are fired from handlerAdded (#7606)
- ObjectCleanerThread must be a deamon thread to ensure the JVM can always terminate (#7627)
- Reflective setAccessible(true) will produce scary warnings on the console when using java9+ (#7650)
- SslHandler unwrap out of order promise/event notification (#7667)
- JdkSslContext supported cipher suites incorrect (#7677)
- ReadOnlyUnsafeDirectByteBuf.memoryAddress() should not throw (#7678)
The most important changes for 4.1.21.Final only are:
- Http2FrameCodec WindowUpdate bug (#7604)
- Fix race-condition when using DnsCache in DnsNameResolve (#7587)
- Reduce overhead of cancel flowcontrolled writes. (#7608)
- Http2MultiplexCodec should propagate unhandled Http2Frames down the pipeline (#7612)
- Do not fire outbound exception through the pipeline when using Http2FrameCodec / Http2MultiplexCodec (#7618)
- Http2MultiplexCodec.DefaultHttpStreamChannel.isOpen() / isActive() should be false when fireChannelActive() is called (#7640)
- Correctly handle multiple calls to DefaultHttp2StreamChannel.Unsafe.close(...) (#7631)
- Convert Http2Error.STREAM_CLOSED to ClosedChannelException when using child channels (#7610)
- DefaultDnsCache should expire all records per hostname when one TTL is reached (#7656)
- DnsNameResolverContext#followCname only uses first name server (#7671)
- DnsNameResovlerContext#followCname sending extra queries (#7681)
- Avoid register multiple cleaner task for same thread's FastThreadLocal index (#7676)
All changes that are in 4.0.56.Final are also included in 4.1.21.Final. All changes only have milestone 4.1.21.Final do not affect 4.0.56.Final.
Http2ConnectionHandler API was slightly adjusted to be able to detect if an error was caused by an outbound or inbound operation. If you override any of the on*Error(...) methods you will need to adjust for it.
As noted before this was the last release we will do for the 4.0 tree. If you not use 4.1.x yet you will need to upgrade if you want to receive more bug-fixes.
As always, please let us know if you find any issues. We love feedback!
Every idea and bug-report counts and so we thought it is worth mentioning those who helped in this area. Please report an unintended omission.