Trustin Lee
780516471f
Bring back ChannelGroup.find(id)
2014-02-13 15:53:45 -08:00
Trustin Lee
40003ed250
Resurrect Channel.id() with global uniqueness
...
- Fixes #1810
- Add a new interface ChannelId and its default implementation which generates globally unique channel ID.
- Replace AbstractChannel.hashCode with ChannelId.hashCode() and ChannelId.shortValue()
- Add variants of ByteBuf.hexDump() which accept byte[] instead of ByteBuf.
2014-02-13 15:53:07 -08:00
Trustin Lee
812481602a
Don't create an EmbeddedSocketAddress every time
2014-02-13 15:45:47 -08:00
Trustin Lee
499033d44f
Add a shortcut method for collision-free naming
2014-02-13 15:17:09 -08:00
Trustin Lee
b533a1361b
Replace UniqueName with Constant and ConstantPool
...
- Proposed fix for #1824
UniqueName and its subtypes do not allow getting the previously registered instance. For example, let's assume that a user is running his/her application in an OSGi container with Netty bundles and his server bundle. Whenever the server bundle is reloaded, the server will try to create a new AttributeKey instance with the same name. However, Netty bundles were not reloaded at all, so AttributeKey will complain that the name is taken already (by the previously loaded bundle.)
To fix this problem:
- Replaced UniqueName with Constant, AbstractConstant, and ConstantPool. Better name and better design.
- Sctp/Udt/RxtxChannelOption is not a ChannelOption anymore. They are just constant providers and ChannelOption is final now. It's because caching anything that's from outside of netty-transport will lead to ClassCastException on reload, because ChannelOption's constant pool will keep all option objects for reuse.
- Signal implements Constant because we can't ensure its uniqueness anymore by relying on the exception raised by UniqueName's constructor.
2014-02-13 15:14:34 -08:00
Trustin Lee
2d96b32155
Clean-up ChannelOutboundBufferTest
...
- partial port of 136e1ebba8
2014-02-13 14:50:11 -08:00
Trustin Lee
a65f097d53
Allow empty handler list when creating a new EmbeddedChannel
...
.. so that it can be used for dynamically initialized pipelines
- Fixes #1899
2014-02-13 14:46:33 -08:00
Norman Maurer
517da2b46a
Fix checkstyle
2014-02-13 14:36:14 -08:00
Bill Gallagher
7e5aa4a911
use enum for state in LocalChannel
2014-02-13 14:35:58 -08:00
Bill Gallagher
a19fe06928
use enum for state in EmbeddedChannel
2014-02-13 14:34:51 -08:00
Trustin Lee
449ce0dd7a
Remove the irrelevant AIO channel options
2014-02-13 13:59:12 -08:00
Trustin Lee
faaff9bd86
Backport the tests in ReentrantChannelTest
...
- Originally from c149f4bcc0
by @wgallagher
2014-02-13 13:55:39 -08:00
Norman Maurer
69a36b8bea
Prettify exception message
2014-02-13 06:46:51 +01:00
Norman Maurer
62ebe88981
Allow to set IoRatio to 100%
2014-02-12 15:22:39 +01:00
Norman Maurer
80e6f9adf4
Correctly respect isAutoRead() and make it consistent across OIO/NIO
2014-02-11 20:46:46 +01:00
Norman Maurer
7041a9238e
Allow to cancel non-flushed writes
2014-02-11 19:42:49 +01:00
Trustin Lee
d52dc3b740
Do not warn if failed to mark a void promise as success
...
- it's always supposed to fail.
2014-02-10 15:03:46 -08:00
Trustin Lee
96b0a949e1
Make most outbound operations cancellable / More robust promise update
...
- Inspired by #2214 by @normanmaurer
- Call setUncancellable() before performing an outbound operation
- Add safeSetSuccess/Failure() and use them wherever
2014-02-10 14:57:18 -08:00
Trustin Lee
041d37e0c8
Make most outbound operations are cancellable
...
- Inspired by #2214
- It actually reduces the chance of trying to marking a cancelled promise as success again, which raises an IllegalStateException.
2014-02-10 14:06:54 -08:00
Norman Maurer
87602fde25
[ #2215 ] DefaultChannelHandlerContext tasks needs to be volatile to ensure every thread only see full initialized instances
2014-02-08 10:33:44 +01:00
Norman Maurer
9bee78f91c
Provide an optimized AtomicIntegerFieldUpdater, AtomicLongFieldUpdater and AtomicReferenceFieldUpdater
2014-02-06 20:08:45 +01:00
Norman Maurer
64c3f58279
Not wakeup the EventLoop for writes as they will not cause a flush anyway
2014-02-01 13:45:27 +01:00
Norman Maurer
f94b563bcd
Better exception message to tell the user why it is not supported
2014-01-30 07:02:22 +01:00
Norman Maurer
80ed147652
[ #2164 ] Only reregister SelectionKeys that are still valid
2014-01-29 07:18:29 +01:00
Trustin Lee
9b0e5b9148
Fix API documentation on the usage of AttributeKey
2014-01-28 13:59:11 +09:00
Norman Maurer
f0c7c901d0
Add testcase to try to reproduce #2144
2014-01-23 07:04:42 +01:00
Norman Maurer
d67184b488
[maven-release-plugin] prepare for next development iteration
2014-01-21 08:18:32 +01:00
Norman Maurer
287515210d
[maven-release-plugin] prepare release netty-4.0.15.Final
2014-01-21 08:18:26 +01:00
William Kemper
39b8cc348a
fix grouping for isActive - socket.isBound is almost always true and should not override 'isOpen'
2014-01-17 07:14:00 +01:00
Trustin Lee
237ba27499
Better exception message
2014-01-13 23:32:49 +09:00
Trustin Lee
3373f83cbb
Fix a bug where DefaultChannelPipelineTest.testFireChannelRegistered() triggers channelRegistered() twice
2014-01-13 23:25:32 +09:00
Norman Maurer
13d65d7ccf
[ #2104 ] Make sure we only act on the SelectionKey if it is valid
2014-01-09 18:27:56 +01:00
Trustin Lee
751943ed00
Fix a potential NPE due to the race between a connection attempt and its cancellation
...
- should fix #2086
2014-01-09 19:24:44 +09:00
Norman Maurer
0bbc3facec
[ #2086 ] Fix race which could produce NPE in AbstractNioUnsafe.finishConnect
2014-01-09 08:22:34 +01:00
milenkovicm
393f7b2306
ChannelOutboundBuffer returns total pending write size
...
total pending write size may be used to optimize write batching
2014-01-07 06:52:07 +01:00
Veebs
dd8f4bc0c4
Fix typo
2014-01-03 11:15:14 +01:00
Trustin Lee
e83d2e0b4e
[maven-release-plugin] prepare for next development iteration
2013-12-22 21:57:48 +09:00
Trustin Lee
cdb700c7a4
[maven-release-plugin] prepare release netty-4.0.14.Final
2013-12-22 21:57:40 +09:00
Trustin Lee
0b7aedb13b
[maven-release-plugin] rollback the release of netty-4.0.14.Final
2013-12-22 21:53:24 +09:00
Trustin Lee
4bf6ec7171
[maven-release-plugin] prepare release netty-4.0.14.Final
2013-12-22 21:52:56 +09:00
Trustin Lee
9c1a49c58e
[maven-release-plugin] rollback the release of netty-4.0.14.Final
2013-12-22 21:47:35 +09:00
Trustin Lee
008a049bf4
[maven-release-plugin] prepare for next development iteration
2013-12-22 21:43:55 +09:00
Trustin Lee
f6cb9088c6
[maven-release-plugin] prepare release netty-4.0.14.Final
2013-12-22 21:43:45 +09:00
Norman Maurer
fc2e6916d9
Fix regression which was introduced by 89a7cb8e71
...
Related to [#2060 ]
2013-12-21 21:39:51 +01:00
Trustin Lee
bab227213e
Increase the default maxMessagesPerRead of AbstractNioByteChannel to 16
...
- Related: #2079
2013-12-21 20:08:42 +09:00
Trustin Lee
1fcd19a28f
Fix a bug where adaptive recvbuf size prediction doesn't work correctly when maxMessagesPerRead is > 1
2013-12-21 19:57:11 +09:00
Norman Maurer
b889d3f559
[ #2079 ] Stop reading once the NIO byte Channel was complete drained
2013-12-21 10:38:07 +01:00
Trustin Lee
89a7cb8e71
More graceful registration failure
...
- Fixes #2060
- Ensure to return a future/promise implementation that does not fail with 'not registered to an event loop' error for registration operations
- If there is no usable event loop available, GlobalEventExecutor.INSTANCE is used as a fallback.
2013-12-21 18:08:58 +09:00
Trustin Lee
ceaebd37ed
Rename flushAndWrite() to writeAndFlush()
...
- Fixes : #2066
- Fixed inspection warnings
2013-12-16 15:02:13 +09:00
Trustin Lee
82b6e75b96
Rename flushAndWrite() to writeAndFlush()
...
- Related: #2066
2013-12-16 14:58:40 +09:00