Norman Maurer
73c35aef4e
[ #1309 ] Make sure ReplayDecoder respect isSingleDecode()
...
* This could cause for example corrupt WebSocketFrame's if they was written from the server
to the client directly after it send the handshake response.
2013-04-25 08:32:07 +02:00
Trustin Lee
7884574c7b
Remove freeInboundBuffer() and freeOutboundBuffer() which has no value
...
- Fixes #1308
freeInboundBuffer() and freeOutboundBuffer() were introduced in the early days of the new API when we did not have reference counting mechanism in the buffer. A user did not want Netty to free the handler buffers had to override these methods.
However, now that we have reference counting mechanism built into the buffer, a user who wants to retain the buffers beyond handler's life cycle can simply return the buffer whose reference count is greater than 1 in newInbound/OutboundBuffer().
2013-04-25 09:15:55 +09:00
Trustin Lee
1b3d7f5325
Make sure handlerAdded() is called before forwarding the buffer content of the removed handler
...
- Added a test case that reproduces the problem in ReplayingDecoderTest
- Call newHandler.handlerAdded() *before* oldHandler.handlerRemoved() to ensure newHandlerAdded() is called before forwarding the buffer content of the old handler in replace0().
2013-04-24 19:25:43 +09:00
Trustin Lee
99b999760a
Move multiplicity check to the early stage
...
.. no need to do it late
2013-04-24 19:02:34 +09:00
Trustin Lee
6282b31bc0
Format
2013-04-24 18:57:14 +09:00
Trustin Lee
7c5dc363fb
Rename methods to catch up the recent changes in handler life cycle listener methods / Ensure to call handlerRemoved() even if ctx.forwardContentAndRemove() failed
2013-04-24 18:55:51 +09:00
Trustin Lee
5dd35448a2
Add a failing test that will pass once #1306 is fixed
2013-04-24 18:47:36 +09:00
Trustin Lee
c72b5341a3
ChannelHandler.handlerRemoved() must be invoked *after* the handler has been removed completely and its buffers should be inaccessible.
2013-04-24 18:46:35 +09:00
Trustin Lee
a68d39fcf2
Fix an infinite exception storm triggered by DefaultChannelHandlerContext.invokeInboundBufferUpdated()
...
- it has to break from the infinite loop when an exception is raised by handler
2013-04-24 18:39:34 +09:00
Trustin Lee
cd26da96b8
Add more safe-to-ignore exception messages for SslHandler
...
- Just in case SslHandler is used on UDT
2013-04-24 18:06:14 +09:00
Trustin Lee
24551ccfff
Unignore DatagramMulticastTest because it seems to pass on Linux, MacOS X, and Windows
...
More specifically: Ubuntu Linux 13.04, MacOS X Lion, Windows 7
2013-04-24 17:56:52 +09:00
Trustin Lee
8a4e708847
Fix 'unsupported address type error' in UDP tests / Fix checkstyle
2013-04-24 17:43:32 +09:00
Trustin Lee
cee0dc6f81
Add IPv4 and IPv6 specific localhost constants to NetUtil
2013-04-24 17:32:42 +09:00
Trustin Lee
322449eedc
Add another safe-to-ignore socket error message for SslHandler
...
.. which covers the 'Software caused connection abort: recv failed' from Windows
2013-04-24 17:05:55 +09:00
Trustin Lee
c37b53fdd1
Format code
2013-04-24 11:33:19 +09:00
Trustin Lee
656d7ca054
Improve localhost / local interface detection mechanism in NetUtil
...
- Do not attempt to validate localhost by binding a socket because it can fail when SecurityManager is in use
- Find loopback interface first and get address from there instead of getting loopback address from InetAddress.getLocalHost() (because it's more reliable)
- Instead of throwing an Error, just log and fall back to 127.0.0.1 while determining localhost address
2013-04-24 11:28:42 +09:00
Trustin Lee
b5989e2449
Reduce exception instantiation overhead in SslHandler / Reduce unnecessary empty array creation
...
- Added EmptyArrays as an internal utility class
2013-04-24 09:32:53 +09:00
Norman Maurer
c95796d981
[ #1302 ] Make sure the handshake future is failed with a ClosedChannelException on channelInactive
2013-04-23 18:20:38 +02:00
Trustin Lee
7452d05fa6
Add some logging for easier diagnosis in NetUtil
...
.. + formatting
2013-04-23 22:57:29 +09:00
Trustin Lee
be1426a220
Fix incorrect log level in NetUtil
2013-04-23 22:53:26 +09:00
Trustin Lee
d292fdafdd
Make sure to close the accept channel which couldn't be initialized or added to the message buffer
2013-04-23 22:42:47 +09:00
Trustin Lee
cc0ad9f1cc
Fix hanging SocketBufReleaseTest / Make sure AioServerSocketChannel closes the accepted channel when the server socket is being shut down
2013-04-23 22:38:28 +09:00
Trustin Lee
f03b2cde62
Fix intermittent infinite loop in AbstractOioByteChannel.doRead()
...
- OioByteStreamChannel.doReadBytes() did not expand the capacity of the inbound buffer properly.
2013-04-23 22:12:07 +09:00
Trustin Lee
32fa4c07f3
Do not unwrap a CompositeByteBuf when it is added as a component of another CompositeByteBuf
...
.. because Reference counting introduces life cycle issues to the CompositeByteBuf being added.
- Fixes #1266
2013-04-23 21:53:51 +09:00
Trustin Lee
94aad58627
Fix incorrect name validation in AbstractHttpData
...
- Fixes #1228
2013-04-23 19:26:50 +09:00
Trustin Lee
9fe5048175
No need to make CaseIgnoringComparator public
...
.. because it's unsed only internally
2013-04-23 18:40:49 +09:00
Trustin Lee
87007d4eb8
Fix another memory leak in AbstractByteBufTest
2013-04-23 13:46:34 +09:00
Trustin Lee
f149cf5220
Reduce code duplication
2013-04-23 13:42:00 +09:00
Trustin Lee
5d5c60bdd3
Fix a bug where fireInboundBufferUpdated() and flush() swallow the event too early
...
- Fixes #1292
- Replace DefaultChannelPipeline.inbound/outboundShutdown flag with per-context flags
- Update the flags in free() / freeInbound() / freeOutbound() for clarity
2013-04-23 13:35:32 +09:00
Trustin Lee
8e2e22c270
Change the thread model slightly for new/freeInbound/OutboundBuffer() for future improvement
...
- Related: #1283
- Make ReplayingDecoder work with the modified thread model
2013-04-23 13:06:27 +09:00
Trustin Lee
c6f936f265
Ensure Javassist is loaded when running an example from an IDE
2013-04-23 13:03:25 +09:00
Trustin Lee
d85757a008
Fix memory leak in DefaultChannelHandlerContext
...
.. where freeInbound() and freeOutbound() are not called for all contexts
- Fixes #1298
2013-04-22 22:18:10 +09:00
Trustin Lee
e80fb65c36
Clean up the pipeline implementation / Ensure Embedded*Channel does not run pending tasks immediately
...
- Replace ugly 'prev != null' check with explicit event scheduling
- Fix an incorrect flag operation in freeHandlerBuffersAfterRemoval()
- Fix a bug in AbstractEmbeddedChannel.doRegister where it makes pending tasks immediately, where the pending tasks actually triggers inbound events
- Remove unnecessary suppression of inboundBufferUpdated() event in DefaultChannelPipeline, which potentially hides an event ordering bug. Unfortunately, I don't remember why I added it in cca35454d2
.
2013-04-22 19:41:00 +09:00
Norman Maurer
9c4bfa44d9
[ #1294 ] Make sure ByteBuf is released once written to channel
2013-04-22 11:04:56 +02:00
Norman Maurer
9a5f45a0c1
[ #1297 ] Make sure ResourceLeakDetector.open(...) is only used after constructing was successful
2013-04-22 10:07:22 +02:00
Trustin Lee
f979c17b67
Revert "Fix #1075 : DefaultChannelHandlerContext.fireChannelSuspended and fireInboundBufferUpdated do not work correctly if handlers with EventExecutor are added or removed from pipeline."
...
This reverts commit 273948055a
, which is
incorrect.
- Related: #1075
2013-04-22 16:59:43 +09:00
Norman Maurer
ab685de7a3
[ #1273 ] Fix resource leaks in test
2013-04-22 09:47:44 +02:00
Trustin Lee
c01d37ad05
Merge forwardBufferContent and setRemoved()
2013-04-22 14:47:17 +09:00
Norman Maurer
9b89c303cc
Return correct type on retain(..)
2013-04-21 13:41:34 +02:00
Norman Maurer
c987dd556e
[ #1295 ] Make sure retain(..) returns the correct WebSocketFrame type
2013-04-21 13:00:50 +02:00
Norman Maurer
2640832a38
Fix checkstyle
2013-04-21 12:52:42 +02:00
Trustin Lee
5846693577
Typo
2013-04-21 07:45:37 +09:00
Trustin Lee
475039532c
Split dynamic pipeline manipulation test into a new class / Replace PrefixThreadFactory with DefaultThreadFactory / Port the latest tests from the branch 'out-of-order' written by @normanmaurer
2013-04-21 07:44:37 +09:00
Norman Maurer
1cdb9e0b48
Just fail all futures that are left to not cause out-of-order writes
2013-04-19 07:06:22 +02:00
Norman Maurer
ca5554dfe7
[ #1236 ] Fix problem where adding a new ChannelHandler could block the eventloop
...
This change also introduce a few other changes which was needed:
* ChannelHandler.beforeAdd(...) and ChannelHandler.beforeRemove(...) were removed
* ChannelHandler.afterAdd(...) -> handlerAdded(...)
* ChannelHandler.afterRemoved(...) -> handlerRemoved(...)
* SslHandler.handshake() -> SslHandler.hanshakeFuture() as the handshake is triggered automatically after
the Channel becomes active
2013-04-19 07:00:50 +02:00
Trustin Lee
4a5dc32224
Fix a bug where LineBasedFrameDecoder does not handle too long lines correctly
...
- Related: #1287
2013-04-19 13:04:20 +09:00
Trustin Lee
6bb00cea6f
Fix failures in testsuite-osgi-deps
...
- Make only netty-common depend on javassist at compile scope, and
all others at test scope
2013-04-19 05:57:53 +09:00
Norman Maurer
58bfd6bf3b
[ #1284 ] Fix bug which can cause in infinity-loop triggered by a handler removal
2013-04-18 22:15:50 +02:00
Trustin Lee
18dca2a8a4
Fix checkstyle
2013-04-19 04:37:51 +09:00
Trustin Lee
8884e311f1
Fix a bug where DefaultCompositeByteBuf.nioBuffers() fails when its component's nioBufferCount() is greater than 1
...
- Fixes #1267
2013-04-19 04:35:44 +09:00