Go to file
Norman Maurer 38b054c65c Correctly handle read-only ByteBuf in ByteToMessageDecoder
Motivation:

If a read-only ByteBuf is passed to the ByteToMessageDecoder.channelRead(...) method we need to make a copy of it once we try to merge buffers for cumulation. This usually is not the case but can for example happen if the local transport is used. This was the cause of the leak report we sometimes saw during the codec-http2 tests, as we are using the local transport and write a read-only buffer. This buffer will then be passed to the peer channel and fired through the pipeline and so end up as the cumulation buffer in the ByteToMessageDecoder. Once the next fragement is received we tried to merge these and failed with a ReadOnlyBufferException which then produced a leak.

Modifications:

Ensure we copy the buffer if its read-only.

Result:

No more exceptions and so leak when a read-only buffer is passed to ByteToMessageDecoder.channelRead(...)
2017-04-19 07:26:26 +02:00
.github Use GitHub Issue/PR Template Feature 2016-12-07 11:40:26 -08:00
all [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
bom [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
buffer Retained[Duplicate|Slice] operations should not increase the reference count for UnreleasableByteBuf 2017-03-31 17:45:29 -07:00
codec Correctly handle read-only ByteBuf in ByteToMessageDecoder 2017-04-19 07:26:26 +02:00
codec-dns [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-http Fix regression in QueryStringEncoder 2017-04-17 19:32:50 +02:00
codec-http2 HTTP/2 Allow more time for EventLoopGroup to shutdown in test that use LocalChannel 2017-04-06 17:56:21 -07:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-mqtt [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-redis [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-smtp [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-socks [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-stomp [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
codec-xml [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
common Introduce ReferenceCounted.refCnt() 2017-04-17 19:43:44 +02:00
example OCSP stapling support for Netty using netty-tcnative. 2017-04-03 11:56:53 -07:00
handler Revert "Add support for SNIMatcher when using SslProvider.OPENSSL* and Java8+" 2017-04-18 13:43:03 +02:00
handler-proxy [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
license Remove reference to akka code and ArrayDeque which is not part of netty anymore 2017-03-07 21:30:51 +01:00
microbench Replace system.out.println with InternalLoggerFactory 2017-03-28 14:51:59 +02:00
resolver [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
resolver-dns DNS move JDK DNS resolution out of DnsServerAddresses static initialization 2017-04-06 18:09:58 -07:00
tarball [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
testsuite [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
testsuite-autobahn [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport NioEventLoop#rebuildSelector0 throws ClassCastException 2017-04-05 19:34:49 -07:00
transport-native-epoll [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
transport-udt [maven-release-plugin] prepare for next development iteration 2017-03-10 07:46:17 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Use shaded dependency on JCTools instead of copy and paste 2016-06-10 13:19:45 +02:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:13:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Remove reference to akka code and ArrayDeque which is not part of netty anymore 2017-03-07 21:30:51 +01:00
pom.xml Update to netty-tcnative 2.0.1.Final 2017-04-18 13:45:10 +02:00
README.md Updating Branches to look section to match the current branching structure of the project 2016-03-10 22:08:01 +01:00
run-example.sh Add an example client for codec-redis 2016-04-23 11:18:12 -07:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

How to build

For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.

You require the following to build Netty:

Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.

Branches to look

Development of all versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.