Netty 4.1.32.Final released
Today we announce the release of netty 4.1.32.Final. This release contains mostly bugfixes, some improvements and a few performance wins. Together with this you should also update to netty-tcnative 2.0.20.Final.
Please also check the
Important notes section below before upgrading.
The most important changes are:
- PlatformDependent.maxDirectMemory() must respect io.netty.maxDirectMemory (#8452)
- Don't swallow intermediate write failures in MessageToMessageEncoder (#8454)
- Make Http2StreamFrameToHttpObjectCodec truly @Sharable (#8482)
- Fix incorrect sizing of temp byte arrays in (Unsafe)ByteBufUtil (#8484)
- SSLHandler may throw AssertionError if writes occur before channelActive (#8486)
- Handshake timeout may never be scheduled if handshake starts via a flush (#8494)
- Defer HTTP/2 stream transition state on initial write until headers are written (#8471)
- Correctly convert between openssl / boringssl and java cipher names when using TLSv1.3 (#8485)
- Correctly convert supported signature algorithms when using BoringSSL (#8481)
- Nio|Epoll|KqueueEventLoop task execution might throw UnsupportedOperationException (#8476)
- Return the correct pointer from ReferenceCountedOpenSslContext.context() and sslCtxPointer() (#8562)
- ReferenceCountedOpenSslEngine SSLSession.getLocalCertificates() / getLocalPrincipal() did not work when KeyManagerFactory was used (#8560)
- AbstractChannel swallows potential errors by ignoring throwable (#8499)
- Allow adjusting of lead detection sampling interval (#8568)
- Recover from Selector IOException (#8569)
- Combine flushes in DnsNameResolver to allow usage of sendmmsg to reduce syscall costs (#8470)
- Mark OIO based transports as deprecated as preparation for removal in Netty 5 (#8579)
- LocationAwareSlf4jLogger does not correctly format log message (#8595)
- Fix offset calculation in PooledByteBufAllocator when used (#8597)
- Harden ref-counting concurrency semantics (#8583)
For the details and all changes, please browse our issue tracker for 4.1.32.Final.
This section will give some more details about more important changes that either change behaviour or add support for some important feature.
Deprecation of OIO and "sub-transports"
In preparation of Netty 5 we marked the OIO transport (and any sub-transports that depend on it) as
@deprecated. These will be removed in netty 5 and everyone should switch to either the NIO transport or one of the native transports, EPOLL or KQueue. For more details see #8579
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.