Trustin Lee
709f2dfb33
Add comment about why we need to count the depth of the stack in AioCompletionHandler
2013-02-26 11:28:49 -08:00
Trustin Lee
0317baa10d
Fix regression in AioCompletionHandler that leads to StackOverflowError
2013-02-26 10:19:59 -08:00
Trustin Lee
434610b18c
Tell what the remote address was when ConnectException occurs.
...
- Fixes #1082
2013-02-22 13:45:17 -08:00
Norman Maurer
12b392b4cc
Revert "[ #1058 ] Add Channel/ChannelHandlerContext/ChannelPipeline.isWritable()"
...
This reverts commit 4e36fbca58
.
2013-02-22 14:42:32 +01:00
Norman Maurer
03b7b2d297
Revert "[ #1058 ] Fix incorrect logic to detect if ChannelHandlerContext is writable"
...
This reverts commit 3acb22c38c
.
2013-02-22 14:41:05 +01:00
Norman Maurer
fada776756
Refactor the aio transport to not depend on the AioChannelFinder and so not need for refelection
2013-02-22 06:53:33 +01:00
Trustin Lee
273948055a
Fix #1075 : DefaultChannelHandlerContext.fireChannelSuspended and fireInboundBufferUpdated do not work correctly if handlers with EventExecutor are added or removed from pipeline.
2013-02-21 17:16:05 -08:00
Trustin Lee
08e2914cef
Do not keep Runnables for the events that are triggered only once in most cases
2013-02-21 15:58:15 -08:00
Trustin Lee
dfbe4e48ae
Remove cruft
2013-02-21 15:53:50 -08:00
Trustin Lee
0f46d4b379
Revert 25c7a783a7
and fix #1064 differently
...
- Rename inbound/outboundBufferFreed to inbound/OutboundShutdown which makes more sense
- Move DefaultChannelHandlerContext.isInbound/OutboundBufferFreed() to DefaultChannelPipeline
- Fix a problem where invokeFreeInbound/OutboundBuffer() sets inbound/outboundShutdown too early (this was the direct cause of #1064 )
- Remove the volatile modifier - DCHC.prev/next are volatile and that's just enough
2013-02-21 15:19:42 -08:00
Norman Maurer
3acb22c38c
[ #1058 ] Fix incorrect logic to detect if ChannelHandlerContext is writable
2013-02-21 15:55:04 +01:00
Norman Maurer
25c7a783a7
Fix unneccessary use of EventLoop.execute(..) which gives some nice perf boost and also fix [ #1064 ] as we had a race
2013-02-21 15:53:04 +01:00
Norman Maurer
5bda3a25b0
add more debug info about discarded message
2013-02-19 19:08:04 +01:00
Norman Maurer
4e36fbca58
[ #1058 ] Add Channel/ChannelHandlerContext/ChannelPipeline.isWritable()
2013-02-17 21:13:03 +01:00
Trustin Lee
60ee9460a9
Outbound bridge is flushed only when its handler also implements ChannelInboundHandler
...
- Fixes #1056
2013-02-15 16:24:59 -08:00
Trustin Lee
189c2785c0
ByteBridge.flush() does not flush anything if the target buffer is not writable but expandable
...
- Fixes #1055
- fire inboundBufferUpdated() again if the bridge was not flushed completely.
2013-02-15 15:50:12 -08:00
Trustin Lee
dc43c2d8a9
ByteBridge.flush() does not flush anything if the target buffer is not writable but expandable
...
- Fixes #1055
2013-02-15 15:00:41 -08:00
Trustin Lee
d68a04a879
[maven-release-plugin] prepare for next development iteration
2013-02-14 12:56:24 -08:00
Trustin Lee
59e638f8f5
[maven-release-plugin] prepare release netty-4.0.0.Beta1
2013-02-14 12:56:15 -08:00
Trustin Lee
1011227b88
Remove apiviz tags - we are focusing on user guide instead and putting diagrams there
2013-02-14 12:09:16 -08:00
Trustin Lee
7b0bf2da7e
Use double-checked locking idiom + volatile optimization
2013-02-13 23:19:01 -08:00
Trustin Lee
4eff91df99
Fix a bug where DefaultChannelPromise.failure0() always returns false / Revert a bad commit
2013-02-13 22:53:10 -08:00
Norman Maurer
5370573400
Change ReferenceCounted.retain* to return itself and so allow method chaining
2013-02-14 07:39:44 +01:00
Trustin Lee
53c27ef5ae
More robust type parameter detection
...
- Also removed unnecessary constructors which were added due to incomplete type parameter detection logic
2013-02-13 19:02:55 -08:00
Trustin Lee
d0a3c2d95e
Reduce the memory footprint of DefaultChannelPromise
2013-02-13 16:38:20 -08:00
Trustin Lee
e2c948782b
Fix a problem where flush future is set more than once
2013-02-13 16:36:53 -08:00
Trustin Lee
6fe6456f8d
Fix indentation
2013-02-13 15:33:09 -08:00
Trustin Lee
7cefd10d9f
Fill/flush bridges only when necessary
2013-02-13 15:32:35 -08:00
Trustin Lee
87efff0bca
DefaultChannelHandlerContext.removed doesn't need to be volatile
2013-02-13 15:17:10 -08:00
Trustin Lee
dc8ae16e61
Make inByte/MsgBuf final
2013-02-13 15:16:40 -08:00
Trustin Lee
a3cb3651d0
Use promise.isDone() instead of additional flag / Remove printStackTrace
2013-02-13 14:44:59 -08:00
Norman Maurer
7cf7d7455d
[ #1048 ] Make sure the promise is not notified multiple times on failure
2013-02-12 20:46:39 +01:00
Norman Maurer
17e37fdfe6
[ #1047 ] Not process with flush on failure
2013-02-12 20:34:59 +01:00
Norman Maurer
30bcc72b44
[ #1038 ] Remove ChannelHandlerContext.replace*Buffer() methods
2013-02-11 14:16:45 +01:00
Trustin Lee
b4f4b95739
Move io.netty.logging to io.netty.internal / Move Signal out of internal because we use it in Channel*MessageAdapters
2013-02-11 20:08:18 +09:00
Roman Stoffel
5f89195247
Fixing generic <> in documentation to display properly
2013-02-11 19:54:32 +09:00
Trustin Lee
4aacf50758
Prettify APIviz diagrams / Remove an empty package
2013-02-11 18:33:15 +09:00
Norman Maurer
f98da73612
Allow for method chaining
2013-02-11 09:44:04 +01:00
Norman Maurer
707f910d2b
Make Channel*Invoker package private
2013-02-11 09:31:01 +01:00
Trustin Lee
bf0bfe9a69
Fix inspector warnings
2013-02-11 16:52:43 +09:00
Norman Maurer
a22725d9fa
Let ChannelPromiseAggregator take a vararg of ChannelPromises and rename method
2013-02-11 07:33:22 +01:00
Norman Maurer
df53d6d7c5
Tighten up visibility
2013-02-11 07:29:13 +01:00
Norman Maurer
9228c97546
Tighten up visibility
2013-02-11 07:27:05 +01:00
Norman Maurer
0e47fb50e2
Tighten up visibility
2013-02-11 07:26:10 +01:00
Norman Maurer
7e95be0295
Support method chaining in ChannelFlushPromiseNotifier
2013-02-11 07:22:12 +01:00
Norman Maurer
ba71e3dcd0
Don'T call ChannelPipeline.fireExceptionCaught(..) for outbound events
2013-02-11 07:19:40 +01:00
Trustin Lee
0e341c9d72
Fix covariant return types in ChannelConfig interfaces for method chaining
...
- Does it really worth doing this? I'm tempted to remove support for method chaining for ChannelConfig.
2013-02-11 15:08:51 +09:00
Trustin Lee
dea1fde604
Self-referential type parameter fix
2013-02-11 14:42:29 +09:00
Trustin Lee
a7b5d45bdf
A little bit of optimization that reduces interestOps() calls
2013-02-11 10:39:50 +09:00
Norman Maurer
565e10e0db
Only update interestedOps if needed
2013-02-10 20:42:40 +01:00
Norman Maurer
775856b3db
Use the same buffer type in ByteBridge as the context
2013-02-10 17:19:43 +01:00
Norman Maurer
e3b8f4dea8
Make sure all resources of a ByteBridge and MessageBridge are released
2013-02-10 17:12:37 +01:00
Norman Maurer
547d4c20b0
Fix javadocs
2013-02-10 14:40:17 +01:00
Norman Maurer
657f16bf2b
Add ChannelGroup.deregister()
2013-02-10 14:40:03 +01:00
Norman Maurer
33c94a98a3
Let FileRegion extend ReferenceCounted and add ChannelGroup.flush() , ChannelGroup.sendFile(..)
2013-02-10 14:25:53 +01:00
Trustin Lee
4f6d05365a
Fix a race condition in reference counter implementation / Reference count never goes below 0
2013-02-10 14:22:14 +09:00
Trustin Lee
bd0729ac45
Make ChannelGroup.write(..) retain the message
2013-02-10 14:02:43 +09:00
Trustin Lee
2f1a0b0593
Remove freeInbound/OutboundMessage(), replaced by ReferenceCounted.retain/release()
...
- Related: #1029
2013-02-10 13:31:31 +09:00
Trustin Lee
b9996908b1
Implement reference counting
...
- Related: #1029
- Replace Freeable with ReferenceCounted
- Add AbstractReferenceCounted
- Add AbstractReferenceCountedByteBuf
- Add AbstractDerivedByteBuf
- Add EmptyByteBuf
2013-02-10 13:10:09 +09:00
Trustin Lee
61bbb04852
Fix a bug in AbstractEmbeddedChannel where flush failure is not recorded
2013-02-10 00:46:30 +09:00
Trustin Lee
51daf2a6a2
Add ABORT signal to Channel*MessageHandlerAdapter
...
- Related: #1030
2013-02-09 20:11:16 +09:00
Trustin Lee
139b1b8382
Add begin/endFlush() and closeOnFailedFlush to ChannelOutboundMessageHandlerAdapter / Make ChannelInboundMessageHandlerAdapter stop processing on first exception to avoid excessive exceptionCaught() events against pipelined messages.
2013-02-09 17:31:20 +09:00
Trustin Lee
e424a2f4b3
Move flushTaskInProgress to AbstractUnsafe
...
.. because it's referenced only there. Also did tiny optimizations.
2013-02-09 01:27:54 +09:00
Trustin Lee
a4c66dc282
Reduce the number of unnecessary Selector.wakeup() / Fix a bug where channelReadSuspended() generates garbage
2013-02-09 01:05:33 +09:00
Trustin Lee
affd514b8c
Rename ByteBufUtil to BufUtil and move ChannelHandlerUtil.freeMessage() there / Remove ChannelHandlerUtil
2013-02-08 23:23:26 +09:00
Trustin Lee
0746199ca4
Remove unreachable code
2013-02-08 23:16:54 +09:00
Trustin Lee
44ea0a116f
Replace ChannelHandlerUtil.unfoldAndAdd() with MessageBuf.unfoldAndAdd() / Remove unused methods in ChannelHandlerUtil
2013-02-08 23:07:20 +09:00
Norman Maurer
a3b46ec9d7
Fix a bug where a closed channel was tried to register with the eventloop
2013-02-08 11:31:48 +01:00
Trustin Lee
ff5aec0c78
Replace TypeParameterFinder with TypeParameterMatcher
...
- We can avoid reflective matching using byte code generation.
- Better matching performance when message type is Object
2013-02-08 18:28:06 +09:00
Trustin Lee
b4eaedf712
Remove confusing ChannelState/OperationHandlerAdapter.inboundBufferUpdated/flush() implementation
2013-02-08 17:17:39 +09:00
Trustin Lee
76eb40a4d2
Make ChannelOutboundMessageHandlerAdapter similar to ChannelInboundMessageHandlerAdapter
2013-02-08 17:07:01 +09:00
Trustin Lee
71136390f1
Extract type parameter finder code to a utility class
2013-02-08 15:57:23 +09:00
Norman Maurer
1033bec4cd
AbstractBootstrap.validate() should return reference to itself
2013-02-08 07:52:35 +01:00
Trustin Lee
fa1b49de98
More robust automatic messageType detection for ChannelInboundMessageHandlerAdapter and MessageToMessageDecoder
2013-02-08 15:45:17 +09:00
Norman Maurer
38ee575839
Let ChannelGroupFuture.addListener(..) return itself to make consistent with ChannelFuture
2013-02-08 07:41:24 +01:00
Norman Maurer
539418ecac
Let ChannelPipeline.set* methods return itself to be more consistent with the reset
2013-02-08 07:24:55 +01:00
Norman Maurer
32e0b59761
Let ChannelPipeline implement Iterable
2013-02-08 07:10:46 +01:00
Trustin Lee
e5616c85c4
Automatic messageType detection for ChannelInboundMessageHandlerAdapter
2013-02-08 13:48:47 +09:00
Trustin Lee
df65b93032
Use Message<Object> instead of Message<I>
2013-02-08 13:05:27 +09:00
Trustin Lee
ac72c3512e
Ensure ChannelInboundMessageHandlerAdapter.endMessageReceived() is always called after handling the inbound message queue. / Call fireInboundBufferUpdated() automatically if the next inbound message buffer was changed.
2013-02-08 13:03:45 +09:00
Trustin Lee
9319e3ebd0
Fix SocketShutdownOutputByPeerTest failure
...
- With half-close enabled, the selector loop was spinning due to uncleared OP_READ flag.
- Added some delay to the test for more reliable failure
2013-02-08 01:50:44 +09:00
Trustin Lee
d8c0bf3be2
Add the 'nextBufferType' parameter to ByteArrayEncoder like did to StringEncoder / Consistent parameter order
2013-02-08 01:36:41 +09:00
Trustin Lee
b8c0751023
Fix a regression where writing a ByteBuf are discarded
2013-02-08 00:41:35 +09:00
Trustin Lee
30e80f8c5c
Fix a regression in ChannelInboundMessageHandlerAdapter
...
- Should forward the unsupported message to the next inbound buffer rather than the next outbound buffer.
2013-02-08 00:08:39 +09:00
Trustin Lee
ec51b359c9
Fix checkstyle again
2013-02-08 00:00:14 +09:00
Trustin Lee
9aa9d8a99b
Fix checkstyle
...
- Basically a workaround for IntelliJ's automatic import optimization
2013-02-07 23:58:21 +09:00
Trustin Lee
d4742bbe16
Clean up abstract ChannelHandler impls / Remove ChannelHandlerContext.hasNext*()
...
- Rename ChannelHandlerAdapter to ChannelDuplexHandler
- Add ChannelHandlerAdapter that implements only ChannelHandler
- Rename CombinedChannelHandler to CombinedChannelDuplexHandler and
improve runtime validation
- Remove ChannelInbound/OutboundHandlerAdapter which are not useful
- Make ChannelOutboundByteHandlerAdapter similar to
ChannelInboundByteHandlerAdapter
- Make the tail and head handler of DefaultChannelPipeline accept both
bytes and messages. ChannelHandlerContext.hasNext*() were removed
because they always return true now.
- Removed various unnecessary null checks.
- Correct method/field names:
inboundBufferSuspended -> channelReadSuspended
2013-02-07 23:47:45 +09:00
Norman Maurer
a13246a2b6
[ #1024 ] Limit the number of SelectionKey.interestedOps(..) calls for performance reasons
2013-02-07 15:34:38 +01:00
Norman Maurer
fd75615d7a
[ #870 ] Convert all modules into osgi bundles
2013-02-06 07:57:11 +01:00
Norman Maurer
46bedb8151
Add javadocs to make contract more clear
2013-02-05 20:29:38 +01:00
Norman Maurer
86b4cde82f
Make sure the inbound/outbound buffer of the ChannelHandlerContext is only modified within the EventLoop
2013-02-05 16:19:04 +01:00
Trustin Lee
2e44a1ba91
Fix test failures in SingleThreadEventLoopTest on Windows
...
- It seems like Windows sometimes sleeps less than specified.
- Related issue: #726
2013-02-05 16:27:37 +09:00
Norman Maurer
ade3cc1329
Move non socket specific stuff out of the socket package
2013-02-01 09:10:28 +01:00
Trustin Lee
2ec932798f
Replace .readable() and .writable() to .isReadable() and .isWritable()
2013-01-31 18:24:33 +01:00
Trustin Lee
42c65cca3a
Make MessageBuf bounded
...
- Move common methods from ByteBuf to Buf
- Rename ensureWritableBytes() to ensureWritable()
- Rename readable() to isReadable()
- Rename writable() to isWritable()
- Add isReadable(int) and isWritable(int)
- Add AbstractMessageBuf
- Rewrite DefaultMessageBuf and QueueBackedMessageBuf
- based on Josh Bloch's public domain ArrayDeque impl
2013-01-31 18:11:06 +01:00
Norman Maurer
ec013bf2d3
[ #983 ] Force the user to implement an actual ChannelInboundHandler or ChannelOutboundHandler
...
For this ChannelInboundHandler* and ChannelOutboundHandler* was made package private
2013-01-31 15:50:27 +01:00
Trustin Lee
39357f3835
Enable TCP_NODELAY and SCTP_NODELAY by default
...
- Fixes #939
- Add PlatformDependent.canEnableTcpNoDelayByDefault()
- Currently returns false on Android. Will change if necessary later.
2013-01-31 12:17:09 +09:00
Trustin Lee
152c969eab
Make Bootstrap and ServerBootstrap thread-safe
...
- Additional fix for: #970
- Use LinkedHashMap again to save memory consumption
- ServerBootstrap now makes a copy of child parameters so that modifying ServerBootstrap after bind() does not affect the already-bound servers. This also makes child channel initialization potentially faster due to reduced garbage iterator.
2013-01-31 11:34:28 +09:00
Norman Maurer
eeab6767db
Tighten up generics on ServerBootstrap again as it was fixed in UDT
2013-01-30 21:38:15 +01:00
Trustin Lee
33c9f3f1e5
Relax ServerBootstrap type constraint to support UDT properly
2013-01-30 22:04:20 +09:00