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
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
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
Norman Maurer
e136227ee6
[ #2065 ] Fix NPE in AbstractOioByteChannel during write to the socket
2013-12-15 11:41:04 +01:00
Trustin Lee
419b5a8de7
Disable logging temporarily when running testRegistrationAfterShutdown
2013-12-08 14:18:39 +09:00
Trustin Lee
0097b904b7
Disable logging temporarily when running testRegistrationAfterShutdown2
2013-12-08 14:13:43 +09:00
Trustin Lee
4116de8360
Fix NoSuchElementException raised by ChannelInitializer
...
.. again.
2013-12-07 11:04:40 +09:00
Trustin Lee
02703e8fc1
Revert "Fix NoSuchElementException raised by ChannelInitializer"
...
This reverts commit 3c453f5dba
.
2013-12-07 11:04:33 +09:00
Norman Maurer
b3d8c81557
Fix all leaks reported during tests
...
- One notable leak is from WebSocketFrameAggregator
- All other leaks are from tests
2013-12-07 00:44:56 +09:00
Trustin Lee
51428004b3
Fix NoSuchElementException raised by ChannelInitializer
2013-12-07 00:39:21 +09:00
Norman Maurer
7ec70d0210
Merge package private interfaces into public ones. Related to [ #1989 ] and [ #1991 ]
2013-11-25 10:37:34 +01:00
Trustin Lee
fd776274c9
Additional fix for potential race condition which occurs when a user cancels a connection attempt
...
- Fixes #1986
2013-11-18 17:00:43 +09:00
Trustin Lee
54d3c99469
Fix an unexpected IllegalStateException from a selector loop when a user cancels a connection attempt
...
- Fixes #1986
2013-11-18 16:33:21 +09:00
Trustin Lee
ec10409314
Saner toString() implementation for EmbeddedSocketAddress
2013-11-08 18:04:40 +09:00