Norman Maurer
adcc2d4b4b
Remove condition in ChannelHandlerAdapter.isSharable() by caching the result of the annotation lookup.
...
Motivation:
Remove the synchronization bottleneck and so speed up things
Modifications:
Introduce a ThreadLocal cache that holds mappings between classes of ChannelHandlerAdapater implementations and the result of checking if the @Sharable annotation is present.
This way we only will need to do the real check one time and server the other calls via the cache. A ThreadLocal and WeakHashMap combo is used to implement the cache
as this way we can minimize the conditions while still be sure we not leak class instances in containers.
Result:
Less conditions during adding ChannelHandlerAdapter to the ChannelPipeline
2014-03-12 12:31:52 +01:00
Norman Maurer
99995876dc
Fix buffer leak in test which was introduced while implement ZLIB_OR_NONE support. Related to [ #2269 ]
2014-03-10 06:25:42 +01:00
Norman Maurer
d89bfc593e
Fix buffer leak in test which was introduced while implement ZLIB_OR_NONE support. Related to [ #2269 ]
2014-03-06 20:13:30 +01:00
Jakob Buchgraber
9fb235459e
Add ZLIB_OR_NONE support to JdkZlibDecoder [ #2016 ]
2014-03-03 06:37:47 +01:00
Trustin Lee
a0378af850
Fix resource leaks in ByteArrayEncoderTest
2014-02-16 11:50:09 -08:00
Trustin Lee
8837afddf8
Enable a user specify an arbitrary information with ReferenceCounted.touch()
...
- Related: #2163
- Add ResourceLeakHint to allow a user to provide a meaningful information about the leak when touching it
- DefaultChannelHandlerContext now implements ResourceLeakHint to tell where the message is going.
- Cleaner resource leak report by excluding noisy stack trace elements
2014-02-13 18:16:25 -08:00
Trustin Lee
45e70d9935
Add ReferenceCounted.touch() / Add missing retain() overrides
...
- Fixes #2163
- Inspector warnings
2014-02-13 18:10:11 -08:00
Trustin Lee
df346a023b
Change the return type of EmbeddedChannel.read*() from Object to an ad-hoc type parameter
...
.. so that there's no need to explicitly down-cast.
Fixes #2067
2014-02-13 17:19:26 -08:00
Trustin Lee
5e69955d23
Fix another buffer leak in XmlFrameDecoderTest
2014-02-13 17:15:06 -08:00
Trustin Lee
457cd2f6fa
Fix buffer leaks in XmlFrameDecoderTest
2014-02-13 17:14:59 -08:00
Trustin Lee
502ccabab3
Fix inspector warnings
2014-02-13 17:13:55 -08:00
Mirko Caserta
ee8571824b
CDATA support
2014-02-13 17:13:49 -08:00
Mirko Caserta
086dbd1ba1
Fixed the XML decoder
2014-02-13 17:13:39 -08:00
Trustin Lee
2d5a3b5898
Add XML decoder
...
- based on @mcaserta's work at https://github.com/netty/netty/pull/1121
- not ready for a merge yet
2014-02-13 17:13:29 -08:00
Trustin Lee
499033d44f
Add a shortcut method for collision-free naming
2014-02-13 15:17:09 -08:00
Norman Maurer
573b54a93d
[ #1907 ] LengthFieldPrepender should better extend MessageToMessageEncoder for less memory copies
2014-02-13 14:52:12 -08:00
Vladimir Schafer
3d531231fe
#2183 Fix for releasing of the internal cumulation buffer in ByteToMessageDecoder
2014-02-06 20:07:56 +01:00
Norman Maurer
85a997d5ec
Correctly calculate checksum when using GZIP. Part of [ #2168 ]
2014-02-06 10:47:59 +01:00
Norman Maurer
0f7379157a
[ #2168 ] Eliminate unnessary memory copy for heap buffers in JdkZlibEncoder
...
* Also adjust tests so it test with direct and heap buffers
2014-01-30 07:02:14 +01:00
Norman Maurer
faf8becf2e
Make use of ByteBufProcessor for extract initial line and headers
...
This gives some nice performance boost as readByte() is quite expensive because of the index / replay checks.
2014-01-16 20:14:08 +01: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
3f7b674db8
Fix bugs in ZLIB codec where they produce malformed stream or their streams are not flushed on time
...
- Fixes #2014
- Add the tests that mix JDK ZLIB codec and JZlib codecs
- Fix a bug where JdkZlibEncoder does not encode the GZIP header when nothing was written to te channel
- Fix a bug where the encoders do not consider the overhead of the wrapper format when calculating the estimated compressed output size.
- Fix a bug where the decoders do not discard the received data after the compressed stream is finished
2013-11-29 18:09:04 +09:00
Trustin Lee
54db9ec725
Use StringUtil.simpleClassName(..) instead of Class.getSimpleName() where necessary
...
- Class.getSimpleName() doesn't render anonymous classes very well
- + some minor cleanup
2013-11-04 19:46:15 +09:00
Trustin Lee
4f5c52572b
Allow a user to define his/her own length field decoder
...
- Fixes #1960
2013-11-02 14:29:51 +01:00
Luke Wood
31c1513229
[ #1958 ] Use CRC32-C in Snappy as per the spec
2013-11-01 20:54:55 +01:00
Trustin Lee
1c2352e6a0
Replace constructor calls on UniqueName and its subtypes with valueOf() wherever possible
2013-10-25 20:58:53 +09:00
Norman Maurer
8930cefab8
[ #1812 ] Rework ByteToMessageDecoder.channelRead(..) method to allow for inlining
2013-10-25 13:32:33 +02:00
Norman Maurer
d946659520
[ #1906 ] Use a ByteBuf allocator from the ByteBufAllocator when encode Strings
2013-10-09 21:18:08 +02:00
Norman Maurer
00f99dbff6
[ #1893 ] Fix bug in JdkZlibDecoder which did not let it handle large data
2013-10-07 07:31:21 +02:00
Norman Maurer
aedd631dbb
[ #1798 ] Correctly handle skipping of too big frames
2013-08-29 13:51:50 +02:00
Norman Maurer
51a536fd30
Free up all buffers after the tests
2013-08-28 11:00:55 +02:00
Norman Maurer
7a38163743
[ #1788 ] Correctly decode CRC32 and ISIZE when using JdkZlibDecoder
...
Because of incorrect decoding a CompressionException was thrown before
2013-08-28 11:00:47 +02:00
Derek Troy-West
6a4131c10f
Currently the system variable to chose which type of zlib decoder is being negated
2013-08-27 08:27:34 +02:00
Norman Maurer
65d24a7647
[ #1735 ] Disable usage of JdkZlibDecoder by default, will be enabled in 4.1.0.Final
2013-08-26 08:15:30 +02:00
Norman Maurer
39cabcd36c
[ #1481 ] Add a JdkZlibDecoder which has no dependencies
2013-08-14 07:41:28 +02:00
Norman Maurer
7d31943326
Remove some dead code
2013-08-11 21:37:43 +02:00
Norman Maurer
73755d1233
[ #1729 ] Let StringEncoder extend MessageToMessageEncoder and so safe a memory copy
2013-08-11 21:24:02 +02:00
Norman Maurer
9a88c50ffb
[ #1728 ] Recycle list after done with it in ReplayingDecoder/ByteToMessageDecoder channelInactive(..)
2013-08-11 21:04:55 +02:00
Norman Maurer
26ddf0849f
[ #1714 ] Make sure ByteArrayDecoder also works correctly with pooled buffers
2013-08-09 08:40:43 +02:00
Norman Maurer
1547876e97
Tiny optimizations
2013-08-09 08:24:24 +02:00
Trustin Lee
87b17e195a
Grammar
2013-08-05 17:40:45 +09:00
Norman Maurer
4d064d85df
Rename class
2013-08-02 07:24:49 +02:00
Norman Maurer
ebee56ef49
More tests related to self removal from pipeline in ByteToMessageDecoder and ReplayingDecoder
2013-08-02 07:23:46 +02:00
Norman Maurer
487c28d93e
Add testcases to prove that remove ReplayingDecoder/ByteToMessageDecoder from within the decode(...) method works
2013-08-01 20:42:46 +02:00
Norman Maurer
a06295fe0a
Correctly fix problem in ByteToMessageDecoder and ReplayingDecoder which could let to have a released buffer passed to the decode methods.
...
This fixes #1664 and revert also the original commit which was meant to fix it 3b1881b523
. The problem with the original commit was that it could delay handlerRemove(..) calls and so mess up the order or forward bytes to late.
2013-08-01 09:54:07 +02:00
Norman Maurer
6ce8571df3
[ #1668 ] Remove synchronized usage in JZlibEncoder and JdkZlibEncoder
2013-07-29 07:08:49 +02:00
Norman Maurer
6278d88d2f
[ #1656 ] Fix IndexOutOfBoundsException in MessageToMessageException
2013-07-26 11:46:26 +02:00
Norman Maurer
eb3283c59c
[ #1613 ] Allow to specify if direct buffers are prefered in ByteToMessageCodec
2013-07-19 09:39:06 +02:00
Trustin Lee
7215c011ca
Fix resource leaks in the tests
2013-07-18 23:42:51 +09:00
Trustin Lee
fe59ab1b9c
Fix resource leak in LengthFieldBasedFrameDecoderTest
2013-07-18 20:55:02 +09:00