Go to file
Idel Pivnitskiy b83df4c6b3 Fix NPE problems
Motivation:

Now Netty has a few problems with null values.

Modifications:

- Check HAProxyProxiedProtocol in HAProxyMessage constructor and throw NPE if it is null.
If HAProxyProxiedProtocol is null we will set AddressFamily as null. So we will get NPE inside checkAddress(String, AddressFamily) and it won't be easy to understand why addrFamily is null.
- Check File in DiskFileUpload.toString().
If File is null we will get NPE when calling toString() method.
- Check Result<String> in MqttDecoder.decodeConnectionPayload(...).
If !mqttConnectVariableHeader.isWillFlag() || !mqttConnectVariableHeader.hasUserName() || !mqttConnectVariableHeader.hasPassword() we will get NPE when we will try to create new instance of MqttConnectPayload.
- Check Unsafe before calling unsafe.getClass() in PlatformDependent0 static block.
- Removed unnecessary null check in WebSocket08FrameEncoder.encode(...).
Because msg.content() can not return null.
- Removed unnecessary null check in DefaultStompFrame(StompCommand) constructor.
Because we have this check in the super class.
- Removed unnecessary null checks in ConcurrentHashMapV8.removeTreeNode(TreeNode<K,V>).
- Removed unnecessary null check in OioDatagramChannel.doReadMessages(List<Object>).
Because tmpPacket.getSocketAddress() always returns new SocketAddress instance.
- Removed unnecessary null check in OioServerSocketChannel.doReadMessages(List<Object>).
Because socket.accept() always returns new Socket instance.
- Pass Unpooled.buffer(0) instead of null inside CloseWebSocketFrame(boolean, int) constructor.
If we will pass null we will get NPE in super class constructor.
- Added throw new IllegalStateException in GlobalEventExecutor.awaitInactivity(long, TimeUnit) if it will be called before GlobalEventExecutor.execute(Runnable).
Because now we will get NPE. IllegalStateException will be better in this case.
- Fixed null check in OpenSslServerContext.setTicketKeys(byte[]).
Now we throw new NPE if byte[] is not null.

Result:

Added new null checks when it is necessary, removed unnecessary null checks and fixed some NPE problems.
2014-07-20 12:55:22 +02:00
all [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
buffer Small performance improvements 2014-07-20 09:26:04 +02:00
codec Fixes for compression codecs 2014-07-20 09:32:53 +02:00
codec-dns [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
codec-haproxy Fix NPE problems 2014-07-20 12:55:22 +02:00
codec-http Fix NPE problems 2014-07-20 12:55:22 +02:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
codec-mqtt Fix NPE problems 2014-07-20 12:55:22 +02:00
codec-socks [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
codec-stomp Fix NPE problems 2014-07-20 12:55:22 +02:00
common Fix NPE problems 2014-07-20 12:55:22 +02:00
example Move generic code to HttpOrSpdyChooser to simplify implementations 2014-07-07 09:37:10 +02:00
handler Fix NPE problems 2014-07-20 12:55:22 +02:00
license Implemented a Bzip2Encoder 2014-07-17 16:19:39 +02:00
microbench [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
tarball [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
testsuite [#2647] Respect IOV_MAX when call writev in native transport 2014-07-09 12:21:58 +02:00
transport Fix NPE problems 2014-07-20 12:55:22 +02:00
transport-native-epoll [#2667] Write until EAGAIN in native transport and only call setEpollOut() in this case 2014-07-18 20:44:37 +02:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09:00
transport-udt [maven-release-plugin] prepare for next development iteration 2014-07-04 17:26:02 +09: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:36:54 +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:13:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Implemented a Bzip2Encoder 2014-07-17 16:19:39 +02:00
pom.xml Implemented LZF compression codec 2014-07-17 07:18:07 +02:00
README.md Synchronized between 4.1 and master 2014-04-25 00:38:02 +09:00
run-example.sh Overall refactoring of the STOMP codec 2014-06-04 17:09:42 +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 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.