Trustin Lee
5b68996f5a
Add missing synchronization
2013-12-06 22:36:53 +09:00
Trustin Lee
0f3451c227
Add ReferenceCountUtil.releaseLater() to make writing tests easy with ReferenceCounteds
2013-12-06 15:12:46 +09:00
Norman Maurer
b0da45db7a
[ #2041 ] Make PlatformDependent.isRoot0() work on solaris
2013-12-05 15:44:19 +01:00
Trustin Lee
6431be8954
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:49:21 +09:00
Norman Maurer
ec8967f9ff
Replace usage of StringBuilder by AppendableCharSequence for performance reasons
2013-12-03 14:47:11 +01:00
Trustin Lee
807d96ed6c
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:00:14 +09:00
Norman Maurer
75280ac6e3
[ #2003 ] Generate a io.netty.util.Version class which holds the version
2013-11-24 13:41:07 +01:00
Trustin Lee
132af3a485
Introduce ChannelHandlerInvoker, dedeciated for invoking event handler methods, and move most handler invocation code in ChannelHandlerContext to the default ChannelHandlerInvoker implementation
...
- Fixes #1912
- Add ChannelHandlerInvoker and its default implementation
- Add pipeline manipulation methods that accept ChannelHandlerInvoker
- Rename Channel(Inbound|Outbound)Invoker to
Channel(Inbound|Outbound)Ops to avoid confusion
- Remove the Javadoc references to the package-private interfaces
2013-11-21 14:14:23 +09:00
Norman Maurer
43943c7ab1
[ #1994 ] DefaultPromise.cancel() should reuse CancellationException for performance reasons
2013-11-19 18:01:20 +01:00
Trustin Lee
26415b8f4c
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:42:33 +09:00
Trustin Lee
6b0025430e
Bump the version to 5.0.0.Alpha1
2013-11-04 19:14:40 +09:00
Trustin Lee
b9d7bc6b4b
Add a getter method for accessing the ClassPool of JavassistTypeParameterMatcherGenerator
...
.. so that a user can even manipulate the class pool as they wish.
2013-11-04 19:00:25 +09:00
Trustin Lee
5b65be01da
Fix an API bug in the JavassistTypeParameterMatcherGenerator where some of its methods are not static
...
- Related issue: #1402
2013-11-04 18:56:19 +09:00
Norman Maurer
285dd79a10
[ #1959 ] Proposed fix to correctly handle timeouts that overflow the ticks in the wheel
2013-10-31 06:26:41 +01:00
Trustin Lee
0dda7df344
Add a shortcut method for collision-free naming
2013-10-25 20:01:31 +09:00
Trustin Lee
dc009b2c2c
Replace UniqueName with Constant and ConstantPool
...
- Proposed fix for #1824
UniqueName and its subtypes do not allow getting the previously registered instance. For example, let's assume that a user is running his/her application in an OSGi container with Netty bundles and his server bundle. Whenever the server bundle is reloaded, the server will try to create a new AttributeKey instance with the same name. However, Netty bundles were not reloaded at all, so AttributeKey will complain that the name is taken already (by the previously loaded bundle.)
To fix this problem:
- Replaced UniqueName with Constant, AbstractConstant, and ConstantPool. Better name and better design.
- Sctp/Udt/RxtxChannelOption is not a ChannelOption anymore. They are just constant providers and ChannelOption is final now. It's because caching anything that's from outside of netty-transport will lead to ClassCastException on reload, because ChannelOption's constant pool will keep all option objects for reuse.
- Signal implements Constant because we can't ensure its uniqueness anymore by relying on the exception raised by UniqueName's constructor.
2013-10-25 19:21:53 +09:00
Trustin Lee
3c7d458c6e
Fix the problem where HashedWheelTimer puts a timeout into an incorrect place
...
- the stopIndex of a timeout is calculated based on the start time of the worker thread and the current tick count for greater accuracy
2013-10-07 17:09:00 +09:00
Norman Maurer
eb24b572dc
[ #1885 ] Correctly close leak detected also on non started HashedWheelTimer
2013-10-02 06:44:55 +02:00
Norman Maurer
088551db9c
[ #1792 ] PlatformDependent.freeDirectBuffer(..) now respect hasUnsafe()
2013-08-28 07:23:55 +02:00
Vladimir Krivosheev
761e9ba956
ability to use Executor instead of ThreadFactory
2013-08-27 07:59:27 +02:00
Norman Maurer
09a748abdb
Bump up version to 4.1.0.Alpha1-SNAPSHOT
2013-08-26 15:18:18 +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
8142aae765
Improve the randomness of ThreadLocalRandom for all platform
...
- Fixes #1765
Java 6 did a poor job of generating seedUniquifier unlike 7, so I implemented platform-independent seedUniquifier generator with configurability
2013-08-24 12:25:50 +09: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
b456adf404
[ #1709 ] Correctly detect that Unsafe.copyMemory is missing
2013-08-08 11:57:05 +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
2b3ac3d446
Factor out the PendingWrite class and put it in internal package. Make use of it in SslHandler and ChunkedWriteHandler to reduce GC-pressure
2013-07-25 12:36:24 +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
Norman Maurer
f4e128b807
[ #1612 ] No need for volatile as it is not needed to be precise
2013-07-23 07:11:11 +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
Trustin Lee
ec370e1d97
Remove an unnecessary empty line
2013-07-23 13:30:27 +09:00
Trustin Lee
70e7bcc963
Remove ResourceLeakDetector.ENABLED / Replace ResourceLeakDetector.is/setDisabled() with is/setEnabled()
...
- Related: #1612
2013-07-23 13:28:05 +09:00
Norman Maurer
2bbad8e4e5
[ #1612 ] Allow to disable resource leak detection via API
2013-07-22 20:55:49 +02:00
kerr
ada07cb9e0
Fix types in javadocs
2013-07-22 19:14:36 +02:00
Jeff Pinner
6c9c151d66
minor documentation cleanup
2013-07-20 08:01:14 +02:00
Norman Maurer
a4d0341ea1
[ #1614 ] Fix bug in SingleThreadEventExecutor which prevent scheduled tasks to get executed
...
The problem was that with OioSocketChannel there was always a read Task in the taskQueue and with the old logic it never tried to execute scheduled tasks if there was at least one task in the taskQueue.
2013-07-19 12:30:40 +02:00
Trustin Lee
762adfcb69
Update HttpStaticFileServer example / Fix bugs related with progress notification
...
- Fix a bug in DefaultProgressivePromise.tryProgress() where the notification is dropped
- Fix a bug in AbstractChannel.calculateMessageSize() where FileRegion is not counted
- HttpStaticFileServer example now uses zero copy file transfer if possible.
2013-07-19 13:21:32 +09:00
Trustin Lee
f96a8e5951
Implement ProgressivePromise notification in NIO byte channels and ChunkedWriteHandler
...
- Refine the contract of GenericProgressiveFutureListener.
- Negative 'total' now means 'unknown', which is useful for ChunkedWriteHandler.
2013-07-19 12:53:23 +09:00
Trustin Lee
ac6c3b85f2
Simplify
2013-07-18 14:49:58 +09:00
Trustin Lee
28b8573b2a
Fix a potential race condition where the worker thread of GlobalEventExecutor terminates with a pending task
...
- Potential fix for the hanging SpdyFrameDecoderTest
2013-07-18 14:49:22 +09:00
Trustin Lee
57d591d188
Fix checkstyle
2013-07-18 14:05:41 +09:00
Trustin Lee
0f2542ded5
Fix StackOverflowError raised by DefaultPromise.notifyListeners() when ImmediateEventExecutor was used
...
- Fixed #1602
2013-07-18 14:03:48 +09: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
ef17a9c5d4
Grammar - Fixes #1598
2013-07-18 10:49:37 +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
e53738f38c
Less confusing leak warning message
2013-07-17 21:29:03 +09: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
Trustin Lee
e8fd209115
[maven-release-plugin] prepare release netty-4.0.0.Final
2013-07-15 20:58:21 +09:00
Norman Maurer
9b9f621690
Make DefaultFutureListeners package private
2013-07-15 09:33:33 +02:00
Norman Maurer
7254a5c2c6
Just some tiny javadocs optimizations
2013-07-14 16:02:03 +02:00
Norman Maurer
3a4c7c9c93
Also dissallow null elements on set
2013-07-12 08:25:19 +02:00
Norman Maurer
98c6a5810a
Just tiny optimization to avoid object creation
2013-07-12 08:23:01 +02:00
Norman Maurer
c38db2afe3
Dissallow adding null elements into RecyclableArrayList
2013-07-12 08:01:31 +02:00
Norman Maurer
da5c6add14
Rename CodecOutput to RecyclableArrayList and move it to internal package.
...
* Also reuse it in SslHandler
2013-07-10 07:50:26 +02: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
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
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
7e3a01cc51
[maven-release-plugin] prepare for next development iteration
2013-07-02 10:26:48 +09:00
Trustin Lee
149db34c19
[maven-release-plugin] prepare release netty-4.0.0.CR8
2013-07-02 10:26:32 +09:00
Trustin Lee
4b11aff08f
Less confusing log messages for system properties
...
- Fixes #1502
2013-07-02 09:23:29 +09:00
Norman Maurer
43da224978
Only log about not avaible JavaAssist in debug level
2013-07-01 11:46:34 +02:00
Trustin Lee
613547b0b9
[maven-release-plugin] prepare for next development iteration
2013-06-28 22:15:33 +09:00
Trustin Lee
a6abd2feb2
[maven-release-plugin] prepare release netty-4.0.0.CR7
2013-06-28 22:15:20 +09:00
Trustin Lee
a6795d7780
[maven-release-plugin] prepare for next development iteration
2013-06-25 11:07:15 +09:00
Trustin Lee
2221446425
[maven-release-plugin] prepare release netty-4.0.0.CR6
2013-06-25 11:07:15 +09:00
Trustin Lee
63403884f7
Make sure PlatformDependent.isRoot0() works fine in Android
...
.. by swallowing ErrnoException raised by process.destroy().
Fixes #1472
2013-06-25 11:07:13 +09:00
Trustin Lee
32aa661604
Make sure PlatformDependent.maxDirectMemory() works on Android
...
- Fixes #1451
2013-06-25 11:07:13 +09:00
Trustin Lee
952e7bbec7
Remove cruft
2013-06-25 11:07:13 +09:00
Trustin Lee
6f86f38ae9
Fix IllegalStateException triggered by a successful connection attempt
...
- Fixes #1467
- Provide more information about the tasks and promises on exception for easier debugging
2013-06-25 11:07:13 +09:00
Norman Maurer
6a9f965f9b
Introduce new utility class calles ReferenceCountUtil and move utility methods from ByteBufUtil to it.
...
The ones in ByteBufUtil were marked as @deprecated
2013-06-14 07:07:33 +02:00
Trustin Lee
a5871dfd86
[maven-release-plugin] prepare for next development iteration
2013-06-14 12:55:15 +09:00
Trustin Lee
f5377cc8d7
[maven-release-plugin] prepare release netty-4.0.0.CR5
2013-06-14 12:55:05 +09:00
Trustin Lee
0da48e7e7f
Determine the default number of heap/direct arenas of PooledByteBufAllocator conservatively
...
- Fixes #1445
- Add PlatformDependent.maxDirectMemory()
- Ensure the default number or arenas is decreased if the max memory of the VM is not large enough.
2013-06-14 12:14:45 +09:00
Trustin Lee
e5ca6518ba
[maven-release-plugin] prepare for next development iteration
2013-06-13 17:02:32 +09:00
Trustin Lee
381063e09c
[maven-release-plugin] prepare release netty-4.0.0.CR4
2013-06-13 17:02:19 +09:00
Trustin Lee
ca1a37a3b3
Log correct system property name
2013-06-13 14:21:56 +09:00
Trustin Lee
32bf3054e1
Prefer direct buffer by default
...
- Because it's faster in most cases thanks to unsafe
2013-06-13 14:21:26 +09:00
Trustin Lee
6d1cd0d0cd
ReferenceCountException -> IllegalReferenceCountException
2013-06-13 14:00:15 +09:00
Trustin Lee
175526b6bd
Move ReferenceCounted and AbstractReferenceCounted to io.netty.util
...
- Fixes #1441
- Also move and rename IllegalBufferAccessException to ReferenceCountException
- Prettier reference count exception messages
2013-06-13 13:14:21 +09:00
Trustin Lee
2320a13a4e
Better use NoOpTypeParameterMatcher as a class path source
...
.. because we tries to load it really
2013-06-12 08:24:36 +09:00
Trustin Lee
be695636d2
Make JavassistTypeParameterMatcherGenerator.generate() public
2013-06-12 08:17:17 +09:00
Trustin Lee
3fc6e02f8b
Allow appending classpath to the ClassPool of JavassistTypeParameterMatcherGenerator
...
- Fixes : #1402
- Make JavassistTypeParameterMatcherGenerator public
- Add appendClassPath()
2013-06-12 08:09:11 +09:00