Commit Graph

583 Commits

Author SHA1 Message Date
Trustin Lee
9098d069b0 Make FailedChannelFuture and SucceededChannelFuture final 2012-12-22 15:10:38 +09:00
Norman Maurer
b004066f37 Javadoc fixes and remove some uncessary casts + checks 2012-12-21 17:59:37 +01:00
Norman Maurer
a819d26f5c Remove ChannelHandlerLifeCycleException and just use ChannelPipelineException as replacement 2012-12-21 17:10:36 +01:00
Norman Maurer
ef555d268c Add more javadocs and replace some abstract methods with noops as we often implemented them as noops 2012-12-21 17:06:24 +01:00
Norman Maurer
3e31af68e4 More javadocs cleanup 2012-12-21 11:03:35 +01:00
Norman Maurer
e4ed551490 Move shared methods to the AbstractEmbeddedChannel class and add javadocs 2012-12-21 10:41:27 +01:00
Norman Maurer
42a77eda9b And again javadocs cleanup 2012-12-21 07:35:42 +01:00
Norman Maurer
62bf98af8c More javadoc fixes 2012-12-21 07:13:31 +01:00
Norman Maurer
7a9d9d6a88 Fix checkstyle 2012-12-20 19:11:17 +01:00
Norman Maurer
5d6d849acd Mark final, add javadocs, add checks 2012-12-20 16:13:26 +01:00
Norman Maurer
d2060ee3f1 Add more javadocs 2012-12-20 15:45:49 +01:00
Norman Maurer
43d13064d1 [#837] CombinedChannelHandler must pass sendFile(...) to the wrapped ChannelOutboundHandler 2012-12-20 12:25:13 +01:00
Norman Maurer
94dc09c33d Tighten up visibility as the user should use Channel.new*Future 2012-12-20 10:45:12 +01:00
Norman Maurer
35c01660da Merge branch 'master' of github.com:netty/netty 2012-12-19 09:27:18 +01:00
Norman Maurer
fdeff3855d Move ChannelInputShutdownEvent to socket package as this is where it belongs to. Also added some javadocs 2012-12-19 09:27:01 +01:00
Trustin Lee
0e017db89a Return the new buffer's capacity is same with the requested capacity
- Rename capacity variables to reqCapacity or normCapacity to distinguish if its the request capacity or the normalized capacity
- Do not reallocate on ByteBuf.capacity(int) if reallocation is unnecessary; just update the index range.
- Revert the workaround in DefaultChannelHandlerContext
2012-12-19 16:50:05 +09:00
Norman Maurer
b6e83dff4f Add javadocs and also some parameter checks in DefaultFileRegion 2012-12-19 08:24:32 +01:00
Jestan Nirojan
44142efe55 Fixed OioSctpChannel event loop issue #632 by using 3 different selectors 2012-12-19 06:54:06 +01:00
Trustin Lee
3fc3401c08 Remove bad Javadoc in SCTP classes. 2012-12-19 11:58:54 +09:00
Norman Maurer
f6735f8cc9 Add javadocs to AIO and also fix a few warnings 2012-12-18 15:27:52 +01:00
Norman Maurer
7b0ec599d6 Fix config 2012-12-18 11:38:38 +01:00
Norman Maurer
8d89e48177 Add javadocs in the oio package and also fix some intellij warnings 2012-12-18 11:24:25 +01:00
Norman Maurer
6d93c3fb25 more javadocs 2012-12-18 07:55:39 +01:00
Norman Maurer
b7b17209ea Next round of javadocs cleanup and fixes. Also limit the visibility of FailedChannelFuture 2012-12-18 07:23:42 +01:00
Trustin Lee
310a87a51d Fix #814 - Prevent IllegalBufferAccessException on write() and flush()
- Also fixed a incorrect port of SpdySessionHandler
  - Previously, it closed the connection too early when sending a GOAWAY frame
  - After this fix, SpdySessionHandlerTest now passes again without the previous fix
2012-12-18 04:53:37 +09:00
Norman Maurer
5a467b69bf DatagramPacket should be final 2012-12-17 20:37:10 +01:00
Trustin Lee
949435d105 Fix checkstyle 2012-12-18 03:08:01 +09:00
Trustin Lee
e59ac8e79b Do not call inbound event methods directly
- Fixes #831

This commit ensures the following events are never triggered as a direct
invocation if they are triggered via ChannelPipeline.fire*():

- channelInactive
- channelUnregistered
- exceptionCaught

This commit also fixes the following issues surfaced by this fix:

- Embedded channel implementations run scheduled tasks too early
- SpdySessionHandlerTest tries to generate inbound data even after the
  channel is closed.
- AioSocketChannel enters into an infinite loop on I/O error.
2012-12-18 03:04:26 +09:00
Norman Maurer
39250873ae Add some javadocs 2012-12-17 16:01:58 +01:00
Trustin Lee
8b82ff5ce0 Fix checkstyle 2012-12-17 18:28:31 +09:00
Trustin Lee
def12a171c Rename ChannelBuf to Buf and ChannelBufType to BufType
- Fixes #825
2012-12-17 17:43:45 +09:00
Trustin Lee
03e68482bb Remove ChannelBuf/ByteBuf.Unsafe
- Fixes #826
Unsafe.isFreed(), free(), suspend/resumeIntermediaryAllocations() are not that dangerous. internalNioBuffer() and internalNioBuffers() are dangerous but it seems like nobody is using it even inside Netty. Removing those two methods also removes the necessity to keep Unsafe interface at all.
2012-12-17 17:41:21 +09:00
Norman Maurer
ba3c795fdf Adjust ChannelPipeline to support method-chaining in a consistent way 2012-12-14 17:06:31 +01:00
Norman Maurer
caa698f235 [#819] Allow for easy method-chaining in ChannelConfig and its sub-types
This commit also introduce a new interface which is called AioSocketChannelConfig to expose AIO only config options with the right visibility.
Also it change the ChannelConfig.setAllocator(..) to return the ChannelConfig to be more consistent with the other methods.
2012-12-14 16:59:23 +01:00
Norman Maurer
6eb7de04e7 Allow to access localAddress and remoteAddress even if the channel is not registered yet 2012-12-14 15:19:03 +01:00
Norman Maurer
42f6a27235 Allow modify the config even before the channel is registered to the eventLoop 2012-12-14 15:10:10 +01:00
Trustin Lee
d8c569a71b Make ChannelFutureNotifier accept multiple ChannelFutures 2012-12-14 20:09:40 +09:00
Trustin Lee
eb23c9d27c Add missing 'operation(args, future)' for 'operation(args)'
- Fixes #818
- Fix inspector warnings
2012-12-14 19:42:58 +09:00
Norman Maurer
96dc3f983f Refactor AIO Transport to allow to use Bootstrap without the ugly hack 2012-12-14 09:51:36 +01:00
Trustin Lee
02a6e85feb Add methods that add/remove multiple ChannelFutureListeners to ChannelFuture
- Fixes #811
2012-12-14 12:45:43 +09:00
Trustin Lee
1f72e53af3 Remove redundant copyright headers added by IntelliJ 2012-12-14 12:23:24 +09:00
Trustin Lee
5a4a59406b Merge ByteBuf.hasNioBuffer() and hasNioBuffers()
- Fixes #797
2012-12-14 12:20:33 +09:00
Trustin Lee
9e973bbffc Port rebuildSelectors() from 3.6 to 4.0
- Fix #813
2012-12-14 11:43:04 +09:00
Trustin Lee
be6cc9c324 Fix inspection warnings 2012-12-14 11:23:30 +09:00
Trustin Lee
d1d9f131da Tell NioTask the cause of unregistration
- Add the 'cause' parameter to the channelUnregistered method
2012-12-14 11:18:03 +09:00
Norman Maurer
c4db51e85d Refactor AIO Transport to allow to use Bootstrap without the ugly hack 2012-12-13 19:54:39 +01:00
Trustin Lee
b47fc77522 Add PooledByteBufAllocator + microbenchmark module
This pull request introduces the new default ByteBufAllocator implementation based on jemalloc, with a some differences:

* Minimum possible buffer capacity is 16 (jemalloc: 2)
* Uses binary heap with random branching (jemalloc: red-black tree)
* No thread-local cache yet (jemalloc has thread-local cache)
* Default page size is 8 KiB (jemalloc: 4 KiB)
* Default chunk size is 16 MiB (jemalloc: 2 MiB)
* Cannot allocate a buffer bigger than the chunk size (jemalloc: possible) because we don't have control over memory layout in Java. A user can work around this issue by creating a composite buffer, but it's not always a feasible option. Although 16 MiB is a pretty big default, a user's handler might need to deal with the bounded buffers when the user wants to deal with a large message.

Also, to ensure the new allocator performs good enough, I wrote a microbenchmark for it and made it a dedicated Maven module. It uses Google's Caliper framework to run and publish the test result (example)

Miscellaneous changes:

* Made some ByteBuf implementations public so that those who implements a new allocator can make use of them.
* Added ByteBufAllocator.compositeBuffer() and its variants.
* ByteBufAllocator.ioBuffer() creates a buffer with 0 capacity.
2012-12-13 22:35:06 +09:00
Norman Maurer
9d42acbc2a [#803] Make sure the right EventExecutor is used after re-register a Channel to another EventLoop 2012-12-13 10:38:44 +01:00
Norman Maurer
2903b91e66 [#798] Not call fireExceptionCaught(..) for outbound operations as the future will get notified anyway and so it is redundant.
Outbound operations are those which are part of the ChannelOutboundInvoker interface.
2012-12-10 20:12:59 +01:00
Norman Maurer
3e783e1b5e Fix bug in DefaultChannelHandlerContext where ByteBridge does not handle bounded buffers well 2012-12-10 16:47:24 +01:00