Trustin Lee
4097dee49d
Make SingleThreadEventExecutor independent from TaskScheduler
...
- Related issue: #817
2013-03-22 09:00:38 +09:00
Trustin Lee
8fb80e9179
Fix a dead lock in ServerBootstrap as described in #1175
...
- Reduce code duplication between bootstrap implementations
2013-03-21 21:34:13 +09:00
Trustin Lee
9b208028ef
Use clearer term when data is discarded by pipeline
2013-03-21 20:22:25 +09:00
Trustin Lee
a8723412dd
Fix checkstyle
2013-03-21 19:51:11 +09:00
Norman Maurer
f858a2fe62
Fix multiple calls to fireChannelActive() when using AIO
2013-03-21 11:49:58 +01:00
Trustin Lee
4fa7e85493
Make sure ChannelFuture of Bootstrap.bind() and connect() notify with the right cause when registration fails
...
- Related: #1175
2013-03-21 19:41:38 +09:00
Norman Maurer
b6dd5938ab
No need to do any deadlock check here
2013-03-21 11:24:26 +01:00
Trustin Lee
c08919d0a0
Fix the dead lock described in #1175
...
- Similar to @normanmaurer's fix in that this commit also makes Bootstrap.init(Channel) asynchronous, but it is simpler and less invasive.
- Also made sure a connection attempt failure in the local transport does not trigger an exceptionCaught event
2013-03-21 19:19:14 +09:00
Trustin Lee
bd8d53eaed
Fix checkstyle
2013-03-21 19:02:34 +09:00
Trustin Lee
2aa0bf73dc
Add a unit test that reproduces the dead lock described in #1175
...
- The offending test case is annotated with `@Ignore`
- Also fixed a bug where channel initialization failure swallows the original cause of initialization failure
2013-03-21 18:43:03 +09:00
Trustin Lee
a980638190
Ensure the best effort is made even if future listeners could not be notified / Handle registration failure in a robust manner
...
- Related: #1187
2013-03-21 17:48:10 +09:00
Trustin Lee
8b722d29a7
Add constructor parameters that do not perform type parameter auto-detection for the languages without type parameters
...
- Fixes #1177
- Add TypeParameterMatcher.get(parameterType)
- Add alternative constructors
2013-03-21 16:11:47 +09:00
Norman Maurer
2b014ce82a
[ #1183 ] Fix BlockingOperationException in ChannelGroup.close().awaitUninterruptibly()
2013-03-20 18:28:55 +01:00
Norman Maurer
ce87b627be
Let EventExecutor return our Future to allow the user to work also with FutureListener here. Also add a special ScheduledFuture that extends our Future for this purpose.
2013-03-19 10:45:42 +01:00
Michael Nitschinger
5a88227856
Transport: Clarifying the role of AbstractBootstrap#bind()
...
This small changeset clarifies the role of AbstractBootstrap#bind(),
especially when not used in a ServerBoostrap context.
2013-03-18 17:58:46 +09:00
Trustin Lee
f4c18c6e74
Fix a bug where NioEventLoop.processSelectedKeys() enters an infinite loop when too many connections are closed at once
...
- Fixes #1171
2013-03-18 15:01:19 +09:00
Jeff Pinner
7498e0f913
make deregister protected in ThreadPerChannelEventLoop
2013-03-17 20:11:33 +01:00
Trustin Lee
2a87950784
[maven-release-plugin] prepare for next development iteration
2013-03-16 18:41:36 +09:00
Trustin Lee
adfb29330b
[maven-release-plugin] prepare release netty-4.0.0.Beta3
2013-03-16 18:40:59 +09:00
ursa
835a40fa25
Port test for handler's life-cycle processing into master branch.
2013-03-14 11:10:02 +01:00
Trustin Lee
70a51bcd8d
Fix memory leak in AbstractEmbeddedChannel
...
- Allow a transport implementation to perform an arbitrary task when a channel has been deregistered completely
2013-03-14 15:51:33 +09:00
Trustin Lee
9c96791176
Move the methods that's only used by DefaultChannelPipeline to DefaultChannelPipeline
2013-03-14 15:01:35 +09:00
Trustin Lee
d55567e21b
Remove DefaultChannelHandlerContext.needsLazyBufInit which is used only by the head handler
2013-03-14 14:35:56 +09:00
Trustin Lee
f1ecb4ab1a
Remove ChannelHandlerContext.types() which is barely useful / Remove ChannelHandlerType together
2013-03-14 14:14:04 +09:00
Trustin Lee
9feb27d58c
Specify timeout on Selector.select()
2013-03-14 08:54:33 +09:00
Trustin Lee
644d5abbda
Add an empty line
2013-03-14 06:54:57 +09:00
Trustin Lee
8dcb1387e3
Add I/O ratio parameter to NioEventLoop
...
- Add SingleThreadEventExecutor.runAllTasks(timeout)
- Add NioEventLoop.ioRatio property
- Merge SelectorUtil into NioEventLoop
2013-03-14 06:49:08 +09:00
Norman Maurer
fe66f33f42
Fix issue where the bytes/messages are forwarded to the wrong handler
2013-03-12 08:37:27 +01:00
Norman Maurer
17ebbdec20
Let ChannelGroupFuture extends ChannelFuture and ChannelGroupFutureListener GenericFutureListener
2013-03-12 08:35:39 +01:00
Norman Maurer
f2a35273e6
Fix checkstype
2013-03-12 08:35:24 +01:00
Trustin Lee
397830d238
Allow SingleOutboundMessageHandler.beginFlush() to reject the flush request by returning false / Replace PartialFlushException with IncompleteFlushException which is more correct.
2013-03-12 15:20:46 +09:00
Trustin Lee
83cdbeca1d
Add ThreadPerChannelEventLoopGroup and ThreadPerChannelEventLoop to enable a user to write a new thread-per-channel transport easily
...
- Fixes #1124
2013-03-12 14:50:38 +09:00
Norman Maurer
2406a9f8b8
Use LinkedHashSet
2013-03-11 06:38:39 +01:00
Norman Maurer
806e9b1f8c
Make sure we handle outbound messages of type ByteBuf special
2013-03-11 08:59:00 +09:00
Norman Maurer
0a1bc86569
Javadocs cleanup / added
2013-03-10 21:07:19 +01:00
Norman Maurer
0504a442ae
Check for NPE and also optimze HashSet allocation
2013-03-10 21:06:59 +01:00
Norman Maurer
fcd6becad9
[ #1136 ] Fix possible IllegalBufferAccessException when remove itself from the pipeline
2013-03-08 21:55:46 +01:00
Norman Maurer
7b4c83b462
[ #1135 ] Fix endless loop which will get triggered when an exception is thrown during freeHandlerBuffersAfterRemoval
2013-03-08 21:41:59 +01:00
Norman Maurer
fd3f923b52
Allow to specify the used buffer type for ChannelInboundByteBufHandler and ChannelOutboundByteBufHandler by configuration. As default it tries to use a direct ByteBuf
2013-03-08 08:20:46 +01:00
Trustin Lee
a9a29bdf3f
Use I/O buffer whenever possible now that our direct buffers are as fast as heap buffers
2013-03-08 11:21:08 +09:00
Trustin Lee
16f4de7adb
Use the original stack trace when translating SocketTimeoutException to ConnectTimeoutException
2013-03-08 08:40:28 +09:00
Norman Maurer
61d6c48365
[ #1036 ] Add special ConnectTimeoutException which is thrown if a connection failed because of a timeout
2013-03-07 20:53:45 +01:00
Norman Maurer
9599bfd569
Fix class-cast exception which is a regression introduces in 256c931db2
2013-03-07 11:11:37 +01:00
Trustin Lee
526dafca75
Fix checkstyle
2013-03-07 16:13:44 +09:00
Norman Maurer
88cc8c1739
[ #1065 ] Provide Future/Promise without channel reference
2013-03-07 07:21:37 +01:00
Trustin Lee
148abe52f9
Reduce the amount of memory used for handler names
...
- Fixes #1123
2013-03-07 12:43:16 +09:00
Trustin Lee
1c1570ffc4
Make field access via ByteBuf.read/write*() faster by avoiding unnecessary boundary checks
...
- also disabled a time consuming test that is actually a regression test
2013-03-06 10:32:29 +09:00
Trustin Lee
6e5bb87219
Re-enable some critical tests
2013-03-05 18:42:34 +09:00
Trustin Lee
a8a7c4f576
Provide a way to implement an ChannelInbound/OutboundMessageHandler conveniently without extending an adapter class
...
- Add ChannelHandlerUtil and move the core logic of ChannelInbound/OutboundMessageHandler to ChannelHandlerUtil
- Add ChannelHandlerUtil.SingleInbound/OutboundMessageHandler and make ChannelInbound/OutboundMessageHandlerAdapter implement them. This is a backward incompatible change because it forces all handler methods to be public (was protected previously)
- Fixes : #1119
2013-03-05 17:27:53 +09:00
Norman Maurer
256c931db2
Move exceptionCaught(..) back to ChannelHandler. Related to [ #1118 ]
2013-03-05 07:34:34 +01:00
Trustin Lee
e4aa941bd4
Simplify ChannelInboundMessageHandlerAdapter.inboundBufferUpdated() implementation
2013-03-05 12:22:57 +09:00
Trustin Lee
0e3825899a
Move DefaultChannelPipeline.notifyHandlerException() to DefaultChannelHandlerContext / Always trigger exceptionCaught() at the handler that raised an exception
...
- Related: #1118
2013-03-05 12:13:14 +09:00
Norman Maurer
1603d9792d
Move methods from ChannelHandler to ChannelStateHandler like proposed in [ #1107 ]
2013-03-04 07:28:10 +01:00
Norman Maurer
3ac78b030a
Improve javadocs
2013-03-01 22:30:45 +01:00
Norman Maurer
03525f4b64
Fix javadocs
2013-03-01 21:42:08 +01:00
Norman Maurer
cb202da832
[ #1036 ] Use SocketTimeoutException when a connection timeout is detected to make it easier to detect timeout vs refused
2013-02-27 10:19:26 +01:00
Norman Maurer
dc4c4ab6b9
[ #1094 ] Fix possible StackOverFlowError when send FileRegions via the AioSocketChannel
2013-02-27 07:52:42 +01:00
Norman Maurer
71f25d13e2
[ #1095 ] Fix AioCompletionHandler stackoverflow detection to executed callback methods in all cases
2013-02-27 07:52:01 +01:00
Trustin Lee
49aa907bd0
[maven-release-plugin] prepare for next development iteration
2013-02-26 16:55:07 -08:00
Trustin Lee
5026c2f359
[maven-release-plugin] prepare release netty-4.0.0.Beta2
2013-02-26 16:54:53 -08:00
Trustin Lee
671f9d48d4
Use ConcurrentHashMapV8 wherever possible
...
- Fixes #1052
2013-02-26 15:54:51 -08:00
Trustin Lee
f67441354a
Move logging classes from internal to internal.logging
...
.. because internal is crowded
2013-02-26 14:54:25 -08:00
Trustin Lee
334b6c3129
Reduce the memory footprint of DefaultChannelPromise even more (part 2)
...
- Rewirte DefaultChannelFutureListeners - this saves another int field when there are more then one listener.
2013-02-26 14:43:12 -08:00
Trustin Lee
d8f5521210
Reduce the memory footprint of DefaultChannelPromise even more
...
- Merge waiters and fluchCheckpoint into a single field
- This limits the number of waiter threads to 2^24 - 1, which is still very large. Can you imagine an application with 16 million threads?
2013-02-26 13:52:49 -08:00
Trustin Lee
98192d7c01
Simplify DefaultChannelPromise
...
- Merge success0() and failure0() into set()
- Remove unnecessary local variable
2013-02-26 13:05:58 -08:00
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