Go to file
Trustin Lee 8b2fb2b985 Ensure channelReadComplete() is called only when necessary
Related:
- 375b9e1307

Motivation:

Even if a handler called ctx.fireChannelReadComplete(), the next handler
should not get its channelReadComplete() invoked if fireChannelRead()
was not invoked before.

Modifications:

- Ensure channelReadComplete() is invoked only when the handler of the
  current context actually produced a message, because otherwise there's
  no point of triggering channelReadComplete().
  i.e. channelReadComplete() must follow channelRead().
- Fix a bug where ctx.read() was not called if the handler of the
  current context did not produce any message, making the connection
  stall. Read the new comment for more information.

Result:

- channelReadComplete() is invoked only when it makes sense.
- No stale connection
2015-02-07 16:12:43 +09:00
all [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
buffer [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
codec Minor idiomatic changes to java docs 2015-02-04 08:28:40 +01:00
codec-http Allow to use WebSocketClientHandshaker and WebSocketServerHandshaker with HttpResponse / HttpRequest 2015-02-06 10:42:53 +01:00
codec-socks [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
common Minor idiomatic changes to java docs 2015-02-04 08:28:40 +01:00
example [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
handler Log only on debug log level in OpenSslEngine 2015-02-07 06:01:41 +01:00
license Remove license of deque as we not use it anymore 2014-08-04 12:21:33 +02:00
microbench [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
tarball [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
testsuite Allow to use WebSocketClientHandshaker and WebSocketServerHandshaker with HttpResponse / HttpRequest 2015-02-06 10:42:53 +01:00
transport Ensure channelReadComplete() is called only when necessary 2015-02-07 16:12:43 +09:00
transport-native-epoll Allow to change epoll mode 2015-02-04 21:34:55 +01:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2014-12-31 20:58:44 +09:00
transport-udt Fix typo in param name 2015-01-16 20:29:55 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Add JVM crash logs to .gitignore 2014-05-18 21:37:12 +09: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:18:14 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Remove license of deque as we not use it anymore 2014-08-04 12:21:33 +02:00
pom.xml Fix #3331 Update Javassist from 3.18.0-GA to 3.19.0-GA 2015-02-07 12:24:40 +09:00
README.md Add a link to the 'native transports' page 2014-07-21 12:54:43 -07:00
run-example.sh Add logLevel property to enable different log levels for the examples. 2014-11-21 10:48:13 +09: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

The 'master' branch is where the development of the latest major version lives on. The development of all other major versions takes place in each branch whose name is identical to its major version number. For example, the development of 3.x and 4.x resides in the branch '3' and the branch '4' respectively.