Skip navigation

Netty 4.0.54.Final and 4.1.18.Final released

I'm happy to announce the latest bug-fix releases for our 4.0.x and 4.1.x series after a month of development. These releases contains bug-fixes, performance enhancements and feature so we encourage everyone to upgrade.

Especially 4.1.18.Final saw various performance improvements compared to the previous version. Most notable here are the improvements when using the SslHandler for writing outbound data and quicker ramping up of the amount that will be read from the socket in general when the AdaptiveRecvByteBufAllocator is used (this is the default).

The most important changes for 4.0.54.Final and 4.1.18.Final are:

  • Ensure we not try to call select when the AbstractSniHandler was already removed from the pipeline (#7475)
  • Not call java methods from within JNI init code to prevent class loading deadlocks (#7480)
  • Fixed default OpenSsl cipher suites (#7450)
  • Dont use ThreadDeathWatcher to cleanup PoolThreadCache if FastThreadLocalThread with wrapped Runnable is used (#7445)
  • Correctly propagate channelInactive even if cleanup throws (#7415)
  • Fix writing of empty LastHttpContent with trailers (#7420)
  • AbstractByteBuf readSlice bound check bug (#7416)
  • Dont fire an SslHandshakeEvent if the handshake was not started at all (#7368)
  • Correctly handle 205 Reset Content response with transfer-encoding (#7397)
  • CompositeBytebuf.copy() and copy(...) should respect the allocator (#7395)

The most important changes for 4.1.18.Final only are:

  • H2C upgrades should be ineligible for flow control (#7400)
  • Enforce writeSpinCount to limit resource consumption per socket (#7478)
  • Add SniCompletionEvent which allows to easily retrieve the hostname that was used to select the SslContext (#7444)
  • SslHandler aggregation prefer copy over CompositeByteBuf (#7468)
  • AdaptiveRecvByteBufAllocator should ramp up while reading (#7466)
  • Http2ConnectionHandler Http2ConnectionPrefaceAndSettingsFrameWrittenEvent propagation (#7460)
  • EDNS Client Subnet is not encoded correctly when source prefix length is not a multiple of 8 (#7457)
  • Allow to detect failed query caused by an Timeout / IO error and also not cache these (#7411)
  • DefaultHttpHeader.names().toArray(...) may throw ArrayStoreException (#7429)
  • HttpConversionUtil TE filtering robustness (#7422)
  • Fix DN resolution when ndots is greater than 1 (#7414)
  • codec-http2: Improve h1 to h2 header conversion (#7399)
  • EpollSocketChannelConfig.getOptions() must not throw if TCP_FASTOPEN_CONNECT is not supported (#7407)
  • Don't try to use UnixResolverDnsServerAddressStreamProvider when on Windows (#7403)
  • Use Netty's DefaultPriorityQueue instead of JDK's PriorityQueue for scheduled tasks (#7384)

For the details and all changes, please browse our issue tracker for 4.0.54.Final and 4.1.18.Final.

All changes that are in 4.0.54.Final are also included in 4.1.18.Final. All changes only have milestone 4.1.18.Final do not affect 4.0.54.Final.

As always, please let us know if you find any issues. We love feedback!

Thank You

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.