Go to file
Trustin Lee a1d7a84271 Handle an empty ByteBuf specially in HttpObjectEncoder
Related: #2983

Motivation:

It is a well known idiom to write an empty buffer and add a listener to
its future to close a channel when the last byte has been written out:

  ChannelFuture f = channel.writeAndFlush(Unpooled.EMPTY_BUFFER);
  f.addListener(ChannelFutureListener.CLOSE);

When HttpObjectEncoder is in the pipeline, this still works, but it
silently raises an IllegalStateException, because HttpObjectEncoder does
not allow writing a ByteBuf when it is expecting an HttpMessage.

Modifications:

- Handle an empty ByteBuf specially in HttpObjectEncoder, so that
  writing an empty buffer does not fail even if the pipeline contains an
  HttpObjectEncoder
- Add a test

Result:

An exception is not triggered anymore by HttpObjectEncoder, when a user
attempts to write an empty buffer.
2014-10-22 14:46:44 +09:00
all Fix missing version properties of transport-epoll in all-in-one JAR 2014-10-21 22:36:19 +09:00
buffer Disable caching of PooledByteBuf for different threads. 2014-09-22 13:39:42 +02:00
codec Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
codec-dns Add EDNS support to DnsQueryEncoder 2014-10-16 17:06:20 +09:00
codec-haproxy Fix NPE problems 2014-07-20 12:55:08 +02:00
codec-http Handle an empty ByteBuf specially in HttpObjectEncoder 2014-10-22 14:46:44 +09:00
codec-http2 Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
codec-memcache Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-mqtt Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-socks Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-stomp Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
common Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
example Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
handler Disable SSLv3 to avoid POODLE vulnerability 2014-10-21 13:58:45 +09:00
handler-proxy Netty Headers Class Restructure and Algorithm Updates 2014-10-21 13:04:08 -04:00
license Implemented LZMA frame encoder 2014-09-15 15:14:15 +02:00
microbench IPv6 address to string rfc5952 2014-09-22 20:30:14 -04:00
resolver Name resolver API and DNS-based name resolver 2014-10-16 17:10:36 +09:00
resolver-dns Fix another resource leak in DnsNameResolver 2014-10-17 11:38:43 +09:00
tarball [maven-release-plugin] prepare for next development iteration 2013-12-22 22:06:15 +09:00
testsuite Fix an infinite loop when writing a zero-length FileRegion 2014-10-17 16:04:37 +09:00
transport Increase the timeout of ChannelDeregistrationTest 2014-10-21 14:08:42 +09:00
transport-native-epoll Name resolver API and DNS-based name resolver 2014-10-16 17:10:36 +09:00
transport-rxtx Fix most inspector warnings 2014-07-02 19:04:11 +09:00
transport-sctp Allow to obtain RecvByteBufAllocator.Handle to allow more flexible implementations 2014-08-12 06:54:29 +02:00
transport-udt Name resolver API and DNS-based name resolver 2014-10-16 17:10:36 +09:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Exclude bin directory from git Motivation: 2014-08-27 06:33:22 +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:17:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Implemented LZMA frame encoder 2014-09-15 15:14:15 +02:00
pom.xml Upgrading HTTP/2 hpack to latest version 2014-10-16 08:59:08 -07:00
README.md Add a link to the 'native transports' page 2014-07-21 12:10:16 -07:00
run-example.sh ALPN java implementation 2014-08-30 13:41:07 -04: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 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.