Skip navigation

Netty 4.0.13.Final released

I'm happy to announce the release of Netty 4.0.13.Final. This is a bug-fix release but also include performance improvements, especially in the http-codec and SslHandler. Please refer to the next section for more details. The release closes 18 issues / tasks . As expected from a bug-fix release it is API compatible to previous version out of the 4.0.x tree.

Most important changes / fixes

  • ChannelHandlerContext exposes package private class ChannelOutboundInvoker (#1991)
  • IllegalStateException in the selector loop when a connection attempt is cancelled. (#1986)
  • discardSomeReadBytes() throws IndexOutOfBoundsException in CompositeByteBuf (#1976)
  • Optimize SslHandler (#1972)

Visit here for the complete list of the changes.

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

Special notes

SslHandler

Because of the changes introduced in (#1972) we saw an performance improvement of 500% when using the SslHandler. This needs no changes in your code base.

Http Codec

We did various optimizations in our Http Codec to higher our throughput. The performance win is dramatic.

First of we allow you to disable the verification of headers now. This means you can disable the verification of header names and values and so also except non-us-ascii names/values. This is most of the times not a big problem but was not allowed pefore. By disable the verification you can get a much higher throughput.

To disable it you need to pass false to the constructor of HttpRequestDecoderor `HttpResponseDecoder. Please check the apidocs for the details.

The other optimization we did allows you to create an optimized CharSequence which you can use as header name and value. This CharSequence is optimized for reuse and should so be used if you have names or values that never changes. Encoding such a CharSequence is much faster then optimize a normal String and so should be considered in such cases.

To generate it use the HttpHeaders.newEntity(String) method.

Acknowledge

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.