Norman Maurer
354de0a8f0
[ #1534 ] Fix handling of partial frames in SslHandler
...
* Let SslHandler not extend ByteToMessageDecoder
2013-07-09 23:58:50 +09:00
Trustin Lee
cbd8817905
Remove MessageList from public API and change ChannelInbound/OutboundHandler accordingly
...
I must admit MesageList was pain in the ass. Instead of forcing a
handler always loop over the list of messages, this commit splits
messageReceived(ctx, list) into two event handlers:
- messageReceived(ctx, msg)
- mmessageReceivedLast(ctx)
When Netty reads one or more messages, messageReceived(ctx, msg) event
is triggered for each message. Once the current read operation is
finished, messageReceivedLast() is triggered to tell the handler that
the last messageReceived() was the last message in the current batch.
Similarly, for outbound, write(ctx, list) has been split into two:
- write(ctx, msg)
- flush(ctx, promise)
Instead of writing a list of message with a promise, a user is now
supposed to call write(msg) multiple times and then call flush() to
actually flush the buffered messages.
Please note that write() doesn't have a promise with it. You must call
flush() to get notified on completion. (or you can use writeAndFlush())
Other changes:
- Because MessageList is completely hidden, codec framework uses
List<Object> instead of MessageList as an output parameter.
2013-07-09 23:51:48 +09:00
Norman Maurer
1d196c5b59
[ #1534 ] Fix handling of partial frames in SslHandler
...
* Let SslHandler not extend ByteToMessageDecoder
2013-07-09 15:53:18 +02:00
Trustin Lee
75229e145a
Prettier web socket log messages
2013-07-09 14:53:05 +09:00
Trustin Lee
7396f9f2b2
Remove Channel.id completely / Use 64-bit hashCode internally to reduce the chance of collision in compareTo()
2013-07-09 14:49:06 +09:00
Norman Maurer
9c1b31d20a
[ #1535 ] Remove Channel.id() and so fix the possible leakage of the previous used Channel id map
...
The user can still use Channel.hashCode() for logging. It's just not 100% unique but should be good enough for most cases
2013-07-08 14:07:18 +02:00
Norman Maurer
39b57b889c
[ #1539 ] Fix bug in DefaultChannelGroup.close() which was blocking the close() call on ServerChannel
2013-07-08 13:36:39 +02:00
Trustin Lee
65c2a6ed46
Make ByteBuf an abstract class rather than an interface
...
- 5% improvement in throughput (HelloWorldServer example)
- Made CompositeByteBuf a concrete class (renamed from DefaultCompositeByteBuf) because there's no multiple inheritance in Java
Fixes #1536
2013-07-08 14:59:52 +09:00
Norman Maurer
40b4c35574
Forgot to commit this class before. Related to [ #1433 ]
2013-07-08 07:41:40 +02:00
Trustin Lee
1bf2f702cb
Do not use unreleaseableBuffer and duplicate
...
.. because it's not as fast as just creating a new direct buffer.
2013-07-07 15:28:43 +09:00
Trustin Lee
a52ac692a9
Faster MessageList iteration in NioSocketChannel.doWrite()
2013-07-07 15:15:52 +09:00
Trustin Lee
553cd034b9
Fix checkstyle
2013-07-07 12:39:29 +09:00
Trustin Lee
a4f2789e55
Add missing final modifier
2013-07-07 12:38:53 +09:00
Trustin Lee
2b2f8db5d2
Use ThreadLocalRandom where possible
2013-07-07 12:37:36 +09:00
Trustin Lee
1fa087ecbf
Fix checkstyle
2013-07-07 12:29:33 +09:00
Trustin Lee
ff97d1db29
Fix checkstyle
2013-07-07 12:29:11 +09:00
Trustin Lee
70df5a6f63
Add ThreadLocalRandom back because it's used by ForkJoinPool now.
2013-07-07 12:26:48 +09:00
Trustin Lee
378626b31f
Port ConcurrentHashMapV8 again to get the recent upstream fixes
2013-07-07 12:22:59 +09:00
Trustin Lee
da5a5af520
Add Test case for truncated SSL packets
...
- Related issue: #1534
- Also made sure ByteToMessageDecoder does not wrap EncoderException.
2013-07-07 11:52:34 +09:00
Trustin Lee
5010fe0a61
Fix a bug in SslHandler where a truncated packet isn't handled correctly
...
- Fixes #1534
2013-07-07 11:22:02 +09:00
Norman Maurer
086ae3536c
[ #1533 ] Introduce ByteBufHolder.duplicate() and make use of it in DefaultChannelGroup.write(...)
2013-07-06 21:17:51 +02:00
Norman Maurer
7dda4b9ce4
[ #1532 ] Remove @deprecated ByteBufIndexFinder and all methods that take it as argument
2013-07-06 20:14:53 +02:00
Trustin Lee
dfc05a6ed7
Fix documentation error in ByteBuf
...
- Fixes #1531
- Thanks to @daschl
2013-07-05 17:03:34 +09:00
Norman Maurer
b63f3488b7
Add a HttpPostRequestDecoder.destory() method which should be used to destroy the decoder and free up resources
...
* Also make the contract more clear about who needs to call release()
2013-07-05 08:31:07 +02:00
Norman Maurer
b26e61d689
Fix broken tests
2013-07-05 07:18:33 +02:00
Trustin Lee
eb8df35f21
Use MessageList.first() and last() wherever possible
...
- Related issue: #1530
2013-07-05 14:11:09 +09:00
Trustin Lee
b7e6a86c1e
Add MessageList.first() and last() for convenience.
...
- Fixes #1530
2013-07-05 14:07:51 +09:00
Trustin Lee
0b9235f072
Simplify ByteBufProcessor and MessageListProcessor and Add internal component accessors to CompositeByteBuf
...
- Fixes #1528
It's not really easy to provide a general-purpose abstraction for fast-yet-safe iteration. Instead of making forEachByte() less optimal, let's make it do what it does really well, and allow a user to implement potentially unsafe-yet-fast loop using unsafe operations.
2013-07-05 14:00:46 +09:00
Norman Maurer
ea85054eab
Correctly detect LastHttpContent after encoding
2013-07-05 06:41:48 +02:00
Norman Maurer
9f0f653588
Optimize HttpContentEncoder to do less memory copies as those are not needed
2013-07-05 06:38:25 +02:00
Norman Maurer
d900f8c21d
[ #1524 ] Fix resource leak in HttpContentEncoder
2013-07-05 06:27:25 +02:00
Norman Maurer
2bda1b530a
[ #1523 ] Fix bug which lead to have SelectedKeys handled two times and so caused a NPE on heavy load
2013-07-04 16:15:33 +02:00
Norman Maurer
cad7c1f1b0
[ #1521 ] Fix performance issue in AbstractHttpData
2013-07-04 11:59:30 +02:00
Norman Maurer
1fee1ef74e
[ #1520 ] Release previous set buffer when setting a new data source
2013-07-04 10:58:37 +02:00
Norman Maurer
45d20d5c9f
[ #1516 ] Fix resource leakage which was caused by the AbstractDiskHttpData which did not release the buffer after copy to disk
2013-07-04 10:41:49 +02:00
Norman Maurer
08b75e594c
[ #1519 ] VoidChannelPromise don't fire CancellationException anymore which was incorrect
2013-07-04 09:32:38 +02:00
Norman Maurer
cea873286e
[ #1517 ] Only fire the exception throught the pipeline if the channel is registered when using VoidChannelPromise
2013-07-04 09:20:24 +02:00
Norman Maurer
f64a121de7
[ #1515 ] Add WebSocketFrameEncoder and WebSocketFrameDecoder interfaces and let our impls implement it
2013-07-04 06:41:22 +02:00
Trustin Lee
998b408db3
Fix NPE in OioByteStreamChannel
...
- Do not assign null to 'is' and 'os' but assign an alternative stream implementation
2013-07-04 12:04:28 +09:00
Norman Maurer
79576d15c2
[ #1513 ] Use the correct names when add the websocket decoder and encoder
2013-07-03 19:54:08 +02:00
Norman Maurer
7ec12d327f
Remove deprecated ByteBufUtil.release(..) and ByteBufUtil.retain(..) methods and its usage. Also fix a problem where an object would have been released two times.
...
* The problem with the release(..) calls here was that it would have called release on an unsupported message and then throw an exception. This exception will trigger ChannelOutboundBuffer.fail(..), which will also try to release the message again.
* Also use the same exception type for unsupported messages as in other channel impls.
2013-07-03 10:00:13 +02:00
Norman Maurer
328969485c
Add explaination to the javadocs to not call retain() on the request when doing the handshake. Related to [ #1508 ]
2013-07-03 06:41:12 +02:00
Norman Maurer
824bb3419a
[ #1511 ] Fix NPE in AbstractTrafficShapingHandler which could happen if the READ_SUSPEND attr was not set yet
2013-07-02 19:30:05 +02:00
Norman Maurer
a4ee2841be
[ #1507 ] Fix buffer leak in WebSocket08FrameDecoder
2013-07-02 13:46:09 +02:00
Norman Maurer
ec5e793a2f
[maven-release-plugin] prepare for next development iteration
2013-07-02 11:41:18 +02:00
Norman Maurer
ca73eaef0d
[maven-release-plugin] prepare release netty-4.0.0.CR9
2013-07-02 11:41:09 +02:00
Norman Maurer
830c559405
[maven-release-plugin] rollback the release of netty-4.0.0.CR9
2013-07-02 11:34:29 +02:00
Norman Maurer
66a16b133c
[maven-release-plugin] prepare release netty-4.0.0.CR9
2013-07-02 10:45:12 +02:00
Trustin Lee
956c0f8b90
Better explanation of reentrance issue of ChannelOutboundBuffer
2013-07-02 17:22:56 +09:00
Norman Maurer
5437835832
[ #1501 ] Fix NPE correctly which could accour if ChannelOutboundBuffer.fail(..) triggered another call to ChannelOutboundBuffer.fail(...)
2013-07-02 09:58:41 +02:00