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
2b84314fdd
Add Recycler.Handle.recycle() so that it's possible to recycle an object without an explicit reference to Recycler
2014-02-13 17:24:37 -08:00
Trustin Lee
86c4166c24
Fixed various buffer leaks in FixedCompositeByteBufTest
2014-02-13 17:03:13 -08:00
Trustin Lee
26fc84529f
Also record retain() and release()
2014-02-13 16:58:45 -08:00
Norman Maurer
2351b8ddd9
Add FixedCompositeByteBuf which can be used to write an array of ByteBuf in an efficient way.
...
This implementation does not produce as much GC pressure as CompositeByteBuf and so is prefered,
for writing an array of ByteBufs. Be aware that FixedCompositeByteBuf is readonly.
When using this in a project that make heavy use of CompositeByteBuf for writes we was able to cut
down allocation to a half.
2014-02-13 16:52:31 -08:00
Trustin Lee
40003ed250
Resurrect Channel.id() with global uniqueness
...
- Fixes #1810
- Add a new interface ChannelId and its default implementation which generates globally unique channel ID.
- Replace AbstractChannel.hashCode with ChannelId.hashCode() and ChannelId.shortValue()
- Add variants of ByteBuf.hexDump() which accept byte[] instead of ByteBuf.
2014-02-13 15:53:07 -08:00
Trustin Lee
ef4bc99849
Remove unnecessary parenthesis
2014-02-13 15:52:06 -08:00
Norman Maurer
f23d68b42f
[ #2187 ] Always do a volatile read on the refCnt
2014-02-07 09:23:16 +01:00
Norman Maurer
9bee78f91c
Provide an optimized AtomicIntegerFieldUpdater, AtomicLongFieldUpdater and AtomicReferenceFieldUpdater
2014-02-06 20:08:45 +01:00
Norman Maurer
d67184b488
[maven-release-plugin] prepare for next development iteration
2014-01-21 08:18:32 +01:00
Norman Maurer
287515210d
[maven-release-plugin] prepare release netty-4.0.15.Final
2014-01-21 08:18:26 +01:00
Trustin Lee
e83d2e0b4e
[maven-release-plugin] prepare for next development iteration
2013-12-22 21:57:48 +09:00
Trustin Lee
cdb700c7a4
[maven-release-plugin] prepare release netty-4.0.14.Final
2013-12-22 21:57:40 +09:00
Trustin Lee
0b7aedb13b
[maven-release-plugin] rollback the release of netty-4.0.14.Final
2013-12-22 21:53:24 +09:00
Trustin Lee
4bf6ec7171
[maven-release-plugin] prepare release netty-4.0.14.Final
2013-12-22 21:52:56 +09:00
Trustin Lee
9c1a49c58e
[maven-release-plugin] rollback the release of netty-4.0.14.Final
2013-12-22 21:47:35 +09:00
Trustin Lee
008a049bf4
[maven-release-plugin] prepare for next development iteration
2013-12-22 21:43:55 +09:00
Trustin Lee
f6cb9088c6
[maven-release-plugin] prepare release netty-4.0.14.Final
2013-12-22 21:43:45 +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
2102cb062b
Fix false-positive leaks
...
- All derived buffers and swapped buffers of a leak-aware buffer must be wrapped again with the leak-aware buffer
2013-12-06 21:32:56 +09:00
Trustin Lee
e506581eb1
Add ReferenceCountUtil.releaseLater() to make writing tests easy with ReferenceCounteds
2013-12-06 15:13:00 +09:00
Trustin Lee
128c4b96b5
Checkstyle
2013-12-06 13:54:36 +09:00
Trustin Lee
5d39b1fc3d
Also record retain() and release()
2013-12-06 13:45:24 +09:00
Trustin Lee
e88172495a
Ensure backward compatibility
...
.. by resurrecting the removed methods and system properties.
2013-12-05 01:02:38 +09:00
Trustin Lee
65b522a2a7
Better buffer leak reporting
...
- Remove the reference to ResourceLeak from the buffer implementations
and use wrappers instead:
- SimpleLeakAwareByteBuf and AdvancedLeakAwareByteBuf
- It is now allocator's responsibility to create a leak-aware buffer.
- Added AbstractByteBufAllocator.toLeakAwareBuffer() for easier
implementation
- Add WrappedByteBuf to reduce duplication between *LeakAwareByteBuf and
UnreleasableByteBuf
- Raise the level of leak reports to ERROR - because it will break the
app eventually
- Replace enabled/disabled property with the leak detection level
- Only print stack trace when level is ADVANCED or above to avoid user
confusion
- Add the 'leak' build profile, which enables highly detailed leak
reporting during the build
- Remove ResourceLeakException which is unsed anymore
2013-12-05 00:51:39 +09:00
Norman Maurer
053c512f6d
Fix checkstyle
2013-12-02 08:23:57 +01:00
Norman Maurer
14600167d6
[ #2021 ] No need to synchronize for unpooled chunks
2013-12-02 08:02:48 +01:00
Norman Maurer
17f5865e38
[maven-release-plugin] prepare for next development iteration
2013-11-29 19:31:01 +01:00
Norman Maurer
ead617fdcc
[maven-release-plugin] prepare release netty-4.0.14.Beta1
2013-11-29 19:30:55 +01:00
Norman Maurer
6cf2748dbb
[maven-release-plugin] prepare for next development iteration
2013-11-28 15:04:51 +01:00
Norman Maurer
5fe7596f49
[maven-release-plugin] prepare release netty-4.0.13.Final
2013-11-28 15:04:46 +01:00
Trustin Lee
407f0a36f5
Simplify bundle generation / Add io.netty.versions.properties to all JARs
...
- Fixes #2003 properly
- Instead of using 'bundle' packaging, use 'jar' packaging. This is
more robust because some strict build tools fail to retrieve the
artifacts from a Maven repository unless their packaging is not 'jar'.
- All artifacts now contain META-INF/io.netty.version.properties, which
provides the detailed information about the build and repository.
- Removed OSGi testsuite temporarily because it gives false errors
during split package test and examination.
- Add io.netty.util.Version for easy retrieval of version information
2013-11-26 22:01:46 +09:00
Norman Maurer
7231be592a
Also allow to override how direct ByteBuffers are freed
2013-11-12 12:40:41 +01:00
Norman Maurer
e83fb821d5
Allow to override how wrapped direct ByteBuffer are allocated to make it easier to extend
2013-11-12 12:13:38 +01:00
Norman Maurer
b00f8c6390
[ #1976 ] Fix IndexOutOfBoundsException when calling CompositeByteBuf.discardReadComponents()
2013-11-09 20:13:24 +01:00
Alex Petrov
e4f391f626
Improve docstrings for and of
2013-11-08 12:15:41 +01:00
Trustin Lee
ba3bc0c020
Simpler toString() for ByteBufAllocators
2013-11-08 17:54:34 +09:00
Norman Maurer
db78581bbb
[maven-release-plugin] prepare for next development iteration
2013-11-07 18:11:45 +01:00
Norman Maurer
2386777af8
[maven-release-plugin] prepare release netty-4.0.12.Final
2013-11-07 18:11:38 +01:00
Norman Maurer
77b4ec7e1b
[ #1800 ] [ #1802 ] Correctly expand capacity of ByteBuf while preserve content
2013-11-04 15:18:21 +01: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
Norman Maurer
4ce49a6195
[ #1943 ] Unpooled.copiedBuffer(ByteBuf pooled) should always return unpooled ByteBuf
2013-10-22 20:20:38 +02:00
Norman Maurer
ceab146b54
[maven-release-plugin] prepare for next development iteration
2013-10-21 07:43:42 +02:00
Norman Maurer
27a89d6032
[maven-release-plugin] prepare release netty-4.0.11.Final
2013-10-21 07:41:49 +02:00
Norman Maurer
68b616728a
[ #1925 ] Only expose sub-region of ByteBuf on nioBuffer(...)
2013-10-16 10:34: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
1c73be21fc
Remove redundant index check
2013-10-08 07:21:01 +02:00
Bill Gallagher
8f612660b2
disable debugging output during test
2013-10-04 06:45:26 +02:00
Norman Maurer
d7da19f745
[maven-release-plugin] prepare for next development iteration
2013-10-02 15:48:52 +02:00
Norman Maurer
d35768ae11
[maven-release-plugin] prepare release netty-4.0.10.Final
2013-10-02 15:48:45 +02:00
Norman Maurer
ee192f0321
[ #1880 ] Use ByteBufAllocator when read bytes into new chunks
2013-10-01 10:10:43 +02:00
Norman Maurer
6d09e57be7
[ #1875 ] Correctly check the readerIndex when try to read a byte from AbstractByteBuf
2013-09-30 14:47:49 +02:00
Norman Maurer
b4fa8af079
Cache underlying ByteBuffers and count in ChannelOutboundBuffer.Entry to reduce object creation and so GC pressure
...
Beside this it also helps to reduce CPU usage as nioBufferCount() is quite expensive when used on CompositeByteBuf which are
nested and contains a lot of components
2013-09-26 20:37:39 +02:00
Norman Maurer
2b9a07cac9
CompositeByteBuf.isDirect() should return true if its only backed by direct buffers
2013-09-26 20:37:31 +02:00
Norman Maurer
a74149e984
[ #1865 ] Only use internalNioBuffer when one of the read* or write* methods are used. This is neccessary to prevent races as those can happen when a slice or duplicate is shared between different Channels
...
that are not assigned to the same EventLoop. In general get* operations should always be safe to be used from different Threads.
This aslo include unit tests that show the issue
2013-09-25 17:27:26 +02:00
Norman Maurer
910ed31a1b
[ #1851 ] EmptyByteBuf.isWritable(..) and isReadable(...) should not throw IndexOutOfBoundsException
2013-09-21 20:40:22 +02:00
Norman Maurer
23baef8fb4
[ #1853 ] Optimize gathering writes for CompositeByteBuf that are only backed by one ByteBuffer
2013-09-19 07:29:58 +02:00
Norman Maurer
c0bbde48b7
[ #1852 ] Fix bug in UnpooledDirectByteBuf.nioBuffer(...) implementation
2013-09-18 20:47:57 +02:00
Greg Soltis
f1d4f813ed
Fix nioBuffer implementation for CompositeByteBuf
2013-09-16 06:41:08 +02:00
Norman Maurer
451e91d142
[ #1821 ] Fix IndexOutOfBoundsException which was thrown if the last component was removed but other components was left
2013-09-09 20:29:30 +02:00
Norman Maurer
ffab456aca
Bump up version to reflect correct one
2013-09-09 11:20:12 +02:00
Norman Maurer
363531caf9
[maven-release-plugin] rollback the release of netty-4.0.9.Final
2013-09-06 09:18:34 +02:00
Norman Maurer
9d53573ee8
[maven-release-plugin] prepare for next development iteration
2013-09-06 09:17:15 +02:00
Norman Maurer
25c226a835
Make sure only direct ByteBuffer are passed to the underlying jdk Channel.
...
This is needed because of otherwise the JDK itself will do an extra ByteBuffer copy with it's own pool implementation. Even worth it will be done
multiple times if the ByteBuffer is always only partial written. With this change the copy is done inside of netty using it's own allocator and
only be done one time in all cases.
2013-09-02 20:17:53 +02:00
Norman Maurer
5416f2315e
[ #1797 ] No use internalNioBuffer() in derived buffers as it is not meant for concurrent access
2013-09-02 14:15:19 +02:00
Norman Maurer
0007fb81ef
Add tests to try to track down some buffer issues
2013-09-02 13:50:47 +02:00
Norman Maurer
795182843d
Remove legancy code which we not need anymore as we use gathering writes anyway everywhere
2013-09-01 11:00:58 +02:00
Norman Maurer
5ddd7cee90
[ #1797 ] Throw IllegalArgumentException if AbstractByteBuf.skipBytes(...) is used with a negative value
2013-08-29 11:14:36 +02:00
Norman Maurer
2e39b25cd4
[maven-release-plugin] prepare for next development iteration
2013-08-26 12:01:03 +02:00
Norman Maurer
b67659a866
[maven-release-plugin] prepare release netty-4.0.8.Final
2013-08-26 12:00:54 +02:00
Trustin Lee
20894bc99e
Fix a bug in internalNioBuffer() implementations of derived buffers
...
- A user can create multiple duplicates of a buffer and access their internal NIO buffers. (e.g. write multiple duplicates to multiple channels assigned to different event loop.) Because the derived buffers' internalNioBuffer() simply delegates the call to the original buffer, all derived buffers and the original buffer's internalNioBuffer() will return the same buffer, which will lead to a race condition.
- Fixes #1739
2013-08-20 14:28:50 +09:00
bgallagher
9f88552f12
remove some dead code
2013-08-10 20:46:48 +02:00
Norman Maurer
1d3560e389
[maven-release-plugin] prepare for next development iteration
2013-08-08 13:53:28 +02:00
Norman Maurer
8e97e6c461
[maven-release-plugin] prepare release netty-4.0.7.Final
2013-08-08 13:53:19 +02:00
Norman Maurer
194b64cff1
[ #1708 ] Correctly set the writerIndex in ReadOnlyByteBufferBuf if it is constructed with a buffer which has non zero position
2013-08-08 06:54:32 +02:00
Norman Maurer
ea1dca8105
[ #1704 ] Make sure SwappedByteBuf.readSlice(..) returns ByteBuf with correct ByteOrder
2013-08-06 12:22:22 +02:00
Norman Maurer
3f2000fa3a
[maven-release-plugin] prepare for next development iteration
2013-08-01 10:59:55 +02:00
Norman Maurer
3f70d5caa4
[maven-release-plugin] prepare release netty-4.0.6.Final
2013-08-01 10:59:46 +02:00
Norman Maurer
e3410680de
[maven-release-plugin] prepare for next development iteration
2013-07-31 20:08:14 +02:00
Norman Maurer
0e124583d6
[maven-release-plugin] prepare release netty-4.0.5.Final
2013-07-31 20:08:05 +02:00
Norman Maurer
8a673db92b
[ #1644 ] Fixed IndexOutOfBoundException when calling copy() on a empty CompositeByteBuf
2013-07-24 07:35:51 +02:00
Norman Maurer
0bc7d3f5d1
[maven-release-plugin] prepare for next development iteration
2013-07-23 10:04:23 +02:00
Norman Maurer
ca00182797
[maven-release-plugin] prepare release netty-4.0.4.Final
2013-07-23 10:04:14 +02:00
Trustin Lee
764741c5ce
Change the contract of ResourceLeakDetector.open() so that unsampled resources are recycled
...
- This also fixes the problem introduced while trying to implement #1612 (Allow to disable resource leak detection).
2013-07-23 14:06:58 +09:00
Norman Maurer
35802207e1
Fix compile error
2013-07-23 06:42:41 +02:00
kerr
ada07cb9e0
Fix types in javadocs
2013-07-22 19:14:36 +02:00
Norman Maurer
f478fcd3b0
[ #1628 ] Fix bug in ReadOnlyByteByteBufferBuf where get operations threw ReadOnlyBufferException
2013-07-22 07:12:05 +02:00
Norman Maurer
feb8d101bd
[ #1626 ] Use static fields for default values
2013-07-22 06:47:29 +02:00
Shawn Silverman
674f4bce51
netty-1597: Rewrite ByteBufInputStream.readLine() to avoid IndexOutOfBoundsException and to behave more correctly for lines ending in '\r'.
2013-07-20 08:05:54 +02:00
Trustin Lee
b130ee6a6c
[maven-release-plugin] prepare for next development iteration
2013-07-18 11:17:42 +09:00
Trustin Lee
10d395e829
[maven-release-plugin] prepare release netty-4.0.3.Final
2013-07-18 11:17:31 +09:00
Trustin Lee
f0a3f849f7
Fix a bug in AbstractByteBuf.writeZero() where the capacity is not auto-expanded
2013-07-18 09:55:02 +09:00
Norman Maurer
fc7c950b08
[maven-release-plugin] prepare for next development iteration
2013-07-17 15:58:36 +02:00
Norman Maurer
bbbf72359e
[maven-release-plugin] prepare release netty-4.0.2.Final
2013-07-17 15:58:28 +02:00
Trustin Lee
57eb531eb8
[maven-release-plugin] prepare for next development iteration
2013-07-16 17:16:10 +09:00
Trustin Lee
76cefcc421
[maven-release-plugin] prepare release netty-4.0.1.Final
2013-07-16 17:15:54 +09:00
Norman Maurer
5297eba280
[maven-release-plugin] prepare for next development iteration
2013-07-15 15:48:15 +02:00
Norman Maurer
c5d8af446a
[maven-release-plugin] prepare release netty-4.0.0.Final
2013-07-15 15:48:05 +02:00
Trustin Lee
246a3ecdcb
[maven-release-plugin] prepare for next development iteration
2013-07-15 20:58:33 +09:00