Trustin Lee
b271774c90
Fix memory leak in UnpooledTest
...
- nothing critical. It's a test that leaks. Not CompositeByteBuf implementation.
2013-03-12 16:49:14 +09:00
Trustin Lee
cef81f1bff
Revert e66fc219ff
2013-03-12 16:44:25 +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
c25513d5e1
Upgrade to protobuf 2.5 and take advantage of MessageLite.getParserFromType()
...
- also fall back to MessageBuilder if getParserFromType() is not available.
2013-03-12 16:25:35 +09:00
Trustin Lee
559b860ff6
Fix grammar
2013-03-12 15:23:09 +09: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
Trustin Lee
6e0e38f09f
Fix test failures
2013-03-12 14:43:38 +09:00
Trustin Lee
e1dd149ca6
Reschedule the streaming API for later
...
- Will release as a part of http_next
2013-03-12 13:08:10 +09:00
Trustin Lee
c660002b4e
Add DecoderResult.UNFINISHED to represent the case where a decoder generated a message that was not decoded completely / Remove partial failure in DecoderResult which is not very useful but confusing
2013-03-12 13:04:53 +09:00
Norman Maurer
acde9a3f8e
Fix a NoSuchElementException when WebSocketClientHandshaker is used with HttpRequestEncoder. This time for real
2013-03-11 14:39:41 +01:00
Norman Maurer
978cf0d98a
Fix a NoSuchElementException when WebSocketClientHandshaker is used with HttpRequestEncoder
2013-03-11 13:54:03 +01:00
Norman Maurer
2406a9f8b8
Use LinkedHashSet
2013-03-11 06:38:39 +01:00
Trustin Lee
e203618007
Travis CI branch whitelisting
2013-03-11 09:55:43 +09:00
Trustin Lee
8f5eaaa740
Make StreamTest finish sooner to make CI happy
2013-03-11 09:46:36 +09:00
Trustin Lee
5bcde10557
Clean before installation in Travis CI
2013-03-11 09:20:20 +09:00
Trustin Lee
24c3b3f6e7
Run full build on Travis CI install
2013-03-11 09:14:06 +09:00
Trustin Lee
27b2f1304b
Why don't CI services upgrade to Maven 3.0.5?
...
Do they just wait for someone to exploit the vulnerability?
2013-03-11 09:11:11 +09:00
Trustin Lee
5d65bbc0a9
Add package-info.java for the Stream API / Print maven version on travis CI
2013-03-11 09:09:46 +09:00
Norman Maurer
806e9b1f8c
Make sure we handle outbound messages of type ByteBuf special
2013-03-11 08:59:00 +09:00
Trustin Lee
32efba34d8
Initial implementation of the Streaming API
...
This pull request provides a framework for exchanging a very large
stream between handlers, typically between a decoder and an inbound
handler (or between a handler that writes a message and an encoder that
encodes that message).
For example, an HTTP decoder, previously, generates multiple
micro-messages to decode an HTTP message (i.e. HttpRequest +
HttpChunks). With the streaming API, The HTTP decoder can simply
generate a single HTTP message whose content is a Stream. And then the
inbound handler can consume the Stream via the buffer you created when
you begin to read the stream. If you create a buffer whose capacity is
bounded, you can handle a very large stream without allocating a lot of
memory. If you just want to wait until the whole content is ready, you
can also do that with an unbounded buffer.
The streaming API also supports a limited form of communication between
a producer (i.e. decoder) and a consumer. A producer can abort the
stream if the stream is not valid anymore. A consumer can choose to
reject or discard the stream, where rejection is for unrecoverable
failure and discard is for recoverable failure.
P.S. Special thanks to @jpinner for the initial input.
2013-03-11 08:57:17 +09:00
Trustin Lee
b4bf565ad9
Travis CI configuration
2013-03-11 08:47:12 +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
0ac5fd9f18
Let BufUtil.retain(...) return the given object
2013-03-10 19:50:26 +01:00
Trustin Lee
ed825de4bf
Fix a bug where TypeParameterMatcher raises ClassCastException when an instance with raw type parameter is given
2013-03-09 09:19:34 +09:00
Trustin Lee
4f2e347625
More concise exception message
2013-03-09 08:48:22 +09: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
b1775a3223
[ #1131 ] Codecs must not cache next buffer during processing
2013-03-08 15:38:17 +01:00
Norman Maurer
8d7f1e2820
Add stacktrace to the IllegalStateException which is thrown if a Promise was notified before
2013-03-08 15:11:29 +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
63116239ac
Always use EmptyByteBuf when a user attempts to construct a buffer with 0 maxCapacity / Make EmptyByteBuf remember the allocator it came from / Optimize EmptyByteBuf a little bit
2013-03-08 11:03:11 +09:00
Trustin Lee
096e4c95ef
Fix checkstyle
2013-03-08 10:39:52 +09:00
Trustin Lee
12f1d96914
Relaxed memory access constraint of ReferenceCounted.refCnt() for potentially better performance / More precise reference counting for MessageBuf
2013-03-08 10:32:20 +09:00
Norman Maurer
6ac9b17ddd
Make WebSocket codec also work when HttpClientCodec and HttpServerCodec is used.
...
Also refactor the handshakers to share more code and make it easier to implement a new one and less error-prone
2013-03-08 08:46:47 +09:00
Trustin Lee
41ab17b9bf
Fix inspection warnings in HashedWheelTimer
2013-03-08 08:45:17 +09:00
Trustin Lee
16f4de7adb
Use the original stack trace when translating SocketTimeoutException to ConnectTimeoutException
2013-03-08 08:40:28 +09:00
Prajwal Tuladhar
e66fc219ff
port fix from Akka for HashedWheelTimer
...
Ported from commits:
* cb4e3536b0
* 7e590f3071
2013-03-08 08:25:37 +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
0f8fbac9f8
Fix a problem in SslHandler where it doesn't work with TLS False Start
...
.. as suggested by @justinsb
2013-03-07 12:51:07 +09: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
303f83043b
Fix checkstyle
2013-03-06 18:23:08 +09:00
Trustin Lee
88df53ec1a
Fix infinite recursion when transferring data between different type of buffers / Add ByteBuf.hasMemoryAddress/memoryAddress()
...
- Fixes : #1109 and #1110
2013-03-06 18:22:16 +09:00