Trustin Lee
0bf5ca22cb
Cleaner resource leak report by excluding noisy stack trace elements
2014-01-29 11:53:23 +09: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
b1392050f7
Disable Javassist completely on Android
...
- Related: #2127
- Inspector warnings
2014-01-21 14:25:54 +09:00
Veebs
5cb9ab0fc0
Correct JavaDoc
2014-01-13 17:40:55 +09: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
Trustin Lee
d7d4ea8c6d
Remove unnecessary check in DefaultPromise.await0()
...
- Fixes #2032
- Fix inspection warnings
2013-12-16 15:16:08 +09:00
Trustin Lee
a79dfe74b7
Prevent NPE from StringUtil.simpleName(..)
2013-12-16 13:54:51 +09:00
Norman Maurer
bddfc38c64
[ #2053 ] Do not allow < 1 on AppendableCharSequence init.
2013-12-11 10:18:26 +01:00
Trustin Lee
40001a7a5b
Add missing synchronization
2013-12-06 22:35:14 +09:00
Trustin Lee
e506581eb1
Add ReferenceCountUtil.releaseLater() to make writing tests easy with ReferenceCounteds
2013-12-06 15:13:00 +09:00
Norman Maurer
04a2249814
[ #2041 ] Make PlatformDependent.isRoot0() work on solaris
2013-12-05 15:43:05 +01:00
Trustin Lee
4f6a591e91
Do not log the deprecated system property when it's not specified by a user
2013-12-05 01:39:48 +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
05c10fae05
Replace usage of StringBuilder by AppendableCharSequence for performance reasons
2013-12-03 12:04:07 +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
5386882c54
[ #2003 ] Generate a io.netty.util.Version class which holds the version
2013-11-24 13:40:47 +01:00
Norman Maurer
a159d3ebac
[ #1994 ] DefaultPromise.cancel() should reuse CancellationException for performance reasons
2013-11-19 17:57:25 +01: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
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
0d1567da0b
Fix an API bug in the JavassistTypeParameterMatcherGenerator where some of its methods are not static
...
- Related issue: #1402
2013-11-04 18:57:02 +09:00
Norman Maurer
16d32ed33a
[ #1959 ] Proposed fix to correctly handle timeouts that overflow the ticks in the wheel
2013-10-31 06:27:17 +01:00
Trustin Lee
af1ac4ca0c
Checkstyle
2013-10-25 21:04:10 +09:00
Trustin Lee
1c2352e6a0
Replace constructor calls on UniqueName and its subtypes with valueOf() wherever possible
2013-10-25 20:58:53 +09:00
Trustin Lee
8986245b47
Deprecate UniqueName and its subtypes' constructors / Add valueOf() for easier future migration.
2013-10-25 20:53:47 +09: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
Trustin Lee
e307979a0d
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:46:19 +09: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
3739ee90cf
[ #1885 ] Correctly close leak detected also on non started HashedWheelTimer
2013-10-02 06:45:12 +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
3aa77f54f7
[ #1792 ] PlatformDependent.freeDirectBuffer(..) now respect hasUnsafe()
2013-08-28 07:23:37 +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
Trustin Lee
79e236dfc2
Make EventExecutor.shutdownGracefully() return Future
...
- Also added EventExecutor.terminationFuture()
- Also fixed type signature problem with Future.add/removeListener()
- Related issue: #1389
2013-06-12 08:00:54 +09:00
Trustin Lee
fd0084ecfa
Remove the constructors that uses ImmediateEventExecutor from DefaultChannelGroup
...
.. which is incorrect in my opinion.
+ minor cleanup
2013-06-12 06:50:38 +09:00
Trustin Lee
1749210985
Add GlobalEventExecutor
...
- Related issue: #1389
- Also extracted SingleThreadEventExecutor.ScheduledFutureTask into a top level class for a reuse
2013-06-12 06:40:01 +09:00
Trustin Lee
786501d972
Remove unused thread local and its getter
2013-06-12 05:03:55 +09:00
Trustin Lee
c3034c8964
Implement the cancellation of connection attmpe for NIO and OIO transport
...
- Related issue: #1432
- Also added test cases to validate the implementation
2013-06-11 18:46:39 +09:00
Trustin Lee
41af9a1eb3
Implement cancellation properly for Promise/Future
...
- Related issue: #1432
- Add Future.isCancellable()
- Add Promise.setUncancellable() which is meant to be used for the party that runs the task uncancellable once started
- Implement Future.isCancelled() and Promise.cancel(boolean) properly
2013-06-11 17:46:21 +09:00
Trustin Lee
7234a00f0d
Add ResourceLeakDetector.ENABLED
...
.. to provide a way to check if resource leak detection was enabled programmatically.
2013-06-10 19:13:06 +09:00
Trustin Lee
9449efb9b2
Optimize Recycler.Stack
...
- No need to use a deque at all
- Increase the initial capacity so that there's no practical chance of capacity expansion
2013-06-10 16:38:57 +09:00
Wolfgang Profer
d9af92f354
[ #1430 ] Fixed byte order problem on little endian platforms that support Unsafe but not unaligned memory access.
2013-06-10 09:24:22 +02:00
Trustin Lee
14158070bf
Revamp the core API to reduce memory footprint and consumption
...
The API changes made so far turned out to increase the memory footprint
and consumption while our intention was actually decreasing them.
Memory consumption issue:
When there are many connections which does not exchange data frequently,
the old Netty 4 API spent a lot more memory than 3 because it always
allocates per-handler buffer for each connection unless otherwise
explicitly stated by a user. In a usual real world load, a client
doesn't always send requests without pausing, so the idea of having a
buffer whose life cycle if bound to the life cycle of a connection
didn't work as expected.
Memory footprint issue:
The old Netty 4 API decreased overall memory footprint by a great deal
in many cases. It was mainly because the old Netty 4 API did not
allocate a new buffer and event object for each read. Instead, it
created a new buffer for each handler in a pipeline. This works pretty
well as long as the number of handlers in a pipeline is only a few.
However, for a highly modular application with many handlers which
handles connections which lasts for relatively short period, it actually
makes the memory footprint issue much worse.
Changes:
All in all, this is about retaining all the good changes we made in 4 so
far such as better thread model and going back to the way how we dealt
with message events in 3.
To fix the memory consumption/footprint issue mentioned above, we made a
hard decision to break the backward compatibility again with the
following changes:
- Remove MessageBuf
- Merge Buf into ByteBuf
- Merge ChannelInboundByte/MessageHandler and ChannelStateHandler into ChannelInboundHandler
- Similar changes were made to the adapter classes
- Merge ChannelOutboundByte/MessageHandler and ChannelOperationHandler into ChannelOutboundHandler
- Similar changes were made to the adapter classes
- Introduce MessageList which is similar to `MessageEvent` in Netty 3
- Replace inboundBufferUpdated(ctx) with messageReceived(ctx, MessageList)
- Replace flush(ctx, promise) with write(ctx, MessageList, promise)
- Remove ByteToByteEncoder/Decoder/Codec
- Replaced by MessageToByteEncoder<ByteBuf>, ByteToMessageDecoder<ByteBuf>, and ByteMessageCodec<ByteBuf>
- Merge EmbeddedByteChannel and EmbeddedMessageChannel into EmbeddedChannel
- Add SimpleChannelInboundHandler which is sometimes more useful than
ChannelInboundHandlerAdapter
- Bring back Channel.isWritable() from Netty 3
- Add ChannelInboundHandler.channelWritabilityChanges() event
- Add RecvByteBufAllocator configuration property
- Similar to ReceiveBufferSizePredictor in Netty 3
- Some existing configuration properties such as
DatagramChannelConfig.receivePacketSize is gone now.
- Remove suspend/resumeIntermediaryDeallocation() in ByteBuf
This change would have been impossible without @normanmaurer's help. He
fixed, ported, and improved many parts of the changes.
2013-06-10 16:10:39 +09:00
Norman Maurer
81e3c1719a
[maven-release-plugin] prepare for next development iteration
2013-05-18 09:59:13 +02:00
Norman Maurer
99caefdf39
[maven-release-plugin] prepare release netty-4.0.0.CR3
2013-05-18 09:57:11 +02:00
Norman Maurer
abb4e20d0b
[ #1369 ] Move ImmediateEventExecutor to common and let it access via a static
...
* Also fix a bug there to return a correct implementation of ProgressivPRomi
ImmediateEventExecutor
2013-05-17 21:35:01 +02:00
Norman Maurer
a8830aee42
[ #1369 ] Move ImmediateEventExecutor to common and let it access via a static public field
...
* Also fix a bug there to return a correct implementation of ProgressivPRomise to work with the
ImmediateEventExecutor
2013-05-17 21:19:59 +02:00
Trustin Lee
c406647bb2
Use short for DefaultPromise.waiters for less memory consumption
2013-05-09 08:51:01 +09:00
Norman Maurer
c43950a03f
[maven-release-plugin] prepare for next development iteration
2013-05-08 18:19:51 +02:00
Norman Maurer
ae76502040
[maven-release-plugin] prepare release netty-4.0.0.CR2
2013-05-08 18:19:38 +02:00
Norman Maurer
e48bc9c086
[ #1344 ] Fix race condition in DefaultChannelPromise / DefaultChannelProgressivePromise which could lead to listeners that are not notified
2013-05-08 10:14:28 +02:00
Norman Maurer
d8a250aba0
Log with info level and not with warn
2013-05-02 08:43:29 +02:00
Trustin Lee
1e0c83db23
Introduce AddressedEnvelope message type for generic representation of an addressed message
...
- Fixes #1282 (not perfectly, but to the extent it's possible with the current API)
- Add AddressedEnvelope and DefaultAddressedEnvelope
- Make DatagramPacket extend DefaultAddressedEnvelope<ByteBuf, InetSocketAddress>
- Rename ByteBufHolder.data() to content() so that a message can implement both AddressedEnvelope and ByteBufHolder (DatagramPacket does) without introducing two getter methods for the content
- Datagram channel implementations now understand ByteBuf and ByteBufHolder as a message with unspecified remote address.
2013-05-01 17:04:43 +09:00
Trustin Lee
bc96c4b7b3
Fix a bug where SingleThreadEventExecutor sets its internal state flag too early during termination
2013-05-01 16:56:34 +09:00
Trustin Lee
23d0178494
Introduce EventExecutor.shutdownGracefully() that deprecates shutdown()
...
shutdownGracefully() provides two optional parameters that give more
control over when an executor has to be shut down.
- Related issue: #1307
- Add shutdownGracefully(..) and isShuttingDown()
- Deprecate shutdown() / shutdownNow()
- Replace lastAccessTime with lastExecutionTime and update it after task
execution for accurate quiet period check
- runAllTasks() and runShutdownTasks() update it automatically.
- Add updateLastExecutionTime() so that subclasses can update it
- Add a constructor parameter that tells not to add an unncessary wakeup
task in execute() if addTask() wakes up the executor thread
automatically. Previously, execute() always called wakeup() after
addTask(), which often caused an extra dummy task in the task queue.
- Use shutdownGracefully() wherever possible / Deprecation javadoc
- Reduce the running time of SingleThreadEventLoopTest from 40s to 15s
using custom graceful shutdown parameters
- Other changes made along with this commit:
- takeTask() does not throw InterruptedException anymore.
- Returns null on interruption or wakeup
- Make sure runShutdownTasks() return true even if an exception was
raised while running the shutdown tasks
- Remove unnecessary isShutdown() checks
- Consistent use of SingleThreadEventExecutor.nanoTime()
Replace isWakeupOverridden with a constructor parameter
2013-05-01 10:52:38 +09:00
Trustin Lee
8a4e708847
Fix 'unsupported address type error' in UDP tests / Fix checkstyle
2013-04-24 17:43:32 +09:00
Trustin Lee
cee0dc6f81
Add IPv4 and IPv6 specific localhost constants to NetUtil
2013-04-24 17:32:42 +09:00
Trustin Lee
c37b53fdd1
Format code
2013-04-24 11:33:19 +09:00
Trustin Lee
656d7ca054
Improve localhost / local interface detection mechanism in NetUtil
...
- Do not attempt to validate localhost by binding a socket because it can fail when SecurityManager is in use
- Find loopback interface first and get address from there instead of getting loopback address from InetAddress.getLocalHost() (because it's more reliable)
- Instead of throwing an Error, just log and fall back to 127.0.0.1 while determining localhost address
2013-04-24 11:28:42 +09:00
Trustin Lee
b5989e2449
Reduce exception instantiation overhead in SslHandler / Reduce unnecessary empty array creation
...
- Added EmptyArrays as an internal utility class
2013-04-24 09:32:53 +09:00
Trustin Lee
7452d05fa6
Add some logging for easier diagnosis in NetUtil
...
.. + formatting
2013-04-23 22:57:29 +09:00
Trustin Lee
be1426a220
Fix incorrect log level in NetUtil
2013-04-23 22:53:26 +09:00
Norman Maurer
9a5f45a0c1
[ #1297 ] Make sure ResourceLeakDetector.open(...) is only used after constructing was successful
2013-04-22 10:07:22 +02:00
Trustin Lee
6bb00cea6f
Fix failures in testsuite-osgi-deps
...
- Make only netty-common depend on javassist at compile scope, and
all others at test scope
2013-04-19 05:57:53 +09:00
Trustin Lee
7ee571968c
Use progress + total instead of delta
...
.. because there is sometimes a task whose total is only a rough
estimation
2013-04-15 20:11:02 +09:00
Trustin Lee
e69033a4c3
Replace TransferFuture(Listener) with (Channel)ProgressiveFuture(Listener)
...
- Now works without the transport package
- Renamed TransferFuture to ProgressiveFuture and ChannelProgressiveFuture / same for promises
- ProgressiveFutureListener now extends GenericProgressiveFutureListener and GenericFutureListener (add/removeTransferListener*() were removed)
- Renamed DefaultEventListeners to DefaultFutureListeners and only accept GenericFutureListeners
- Various clean-up
2013-04-15 15:26:20 +09:00
Trustin Lee
391c011764
Renames and typos
2013-04-15 11:03:59 +09:00
kerr
713b200adf
[ #1244 ] Support ChannelTransferPromise for sendFile
2013-04-14 21:22:03 +02:00
Trustin Lee
2600f46fd7
Fix checkstyle
2013-04-11 17:54:20 +09:00
Trustin Lee
15ac4127e4
Remove @Ignore and add expected / Fix inspector warnings
2013-04-11 17:29:37 +09:00
Norman Maurer
73db1f886d
[ #1247 ] Add test which shows the problem with concrete classes that pass in the type based on a generic
2013-04-10 07:08:42 +02:00
Trustin Lee
e8ee6a2772
Better exception message when tickDuration is too big
...
- Related: #1246
- Fix misc inspector warnings
2013-04-10 13:44:05 +09:00
Norman Maurer
da174f4290
Add a warning about SingleThreadEventExecutor.pendingTasks() operation
2013-04-09 12:50:29 +02:00
Norman Maurer
0efebd5a82
Allow to get an Iterator over all of the EventExecutor an EventExecutorGroup contains. Beside this allow to get basic stats for the EventExecutor like pendingTasks and executorCount
2013-04-09 15:45:18 +09:00
Norman Maurer
60cfb547b4
Fix logging of android platform detection
2013-04-08 21:19:20 +02:00
Norman Maurer
51de21f250
[ #1246 ] Correctly convert to nanos
2013-04-08 10:42:54 +02:00
Norman Maurer
2508c76e97
[ #1246 ] Fix cpu-spinning regression in HashedWheelTimer
...
Also remove the usage of System.currentTimeMillis() completely here to make it more consistent and correct
2013-04-08 07:01:08 +02:00
Andrei Pozolotin
a3e760a003
fix #1234 - duplicate package-info.java errors in eclipse requires release of netty-build v 19 and netty-parent update.
2013-04-05 05:38:05 +09:00
Trustin Lee
05bc0ba17f
Fix checkstyle
2013-04-04 16:47:10 +09:00
Trustin Lee
6dfa455f9e
Fix compiler warnings
2013-04-04 16:31:41 +09:00
Trustin Lee
117ad8acd7
Add MultithreadEventLoopGroup.DEFAULT_EVENT_LOOP_THREADS / Add DefaultThreadFactory
...
- Allow overriding the default thread factory when a user specified no thread factory
2013-04-03 17:49:30 +09:00
Trustin Lee
312a35dfed
Remove MultithreadEventExecutorGroup.DEFAULT_POOL_SIZE
...
- We should never define a default nThread for MultithreadEventExecutorGroup because we don't know what a user do with it.
2013-04-03 17:15:25 +09:00
Trustin Lee
2ffa083d3c
Allow overriding the default allocator properties and log them / Prettier log
2013-04-03 12:08:01 +09:00
Trustin Lee
0f3dc0409a
Log various properties at startup time for easier diagnosis
2013-04-03 11:44:30 +09:00
Norman Maurer
96bf71e814
Let EventExecutorGroup extend ScheduledExecutorService as it shares quite some semantic
2013-04-01 13:56:46 +02:00
Prajwal Tuladhar
05850da863
enable checkstyle for test source directory and fix checkstyle errors
2013-03-30 13:18:57 +01:00
Norman Maurer
59012390f6
Fix version numbering
2013-03-25 08:01:11 +01:00
Norman Maurer
7d7b676eeb
[maven-release-plugin] prepare for next development iteration
2013-03-22 15:20:35 +01:00
Norman Maurer
60fc7dac4d
[maven-release-plugin] prepare release netty-4.0.0.CR1
2013-03-22 15:20:11 +01:00
Prajwal Tuladhar
915cb8b55c
[ #744 ] Port fixes from Akka to HashedWheelTimer
...
port fix from Akka with following commits:
*
https://github.com/akka/akka/commit/cb4e3536b0ed3483bd3636d7789c0ddcadaf
a2da
*
https://github.com/akka/akka/commit/7e590f3071bdf89a4aa9d7d262bac8923d85
e754
And also use constants for worker state for time instead of numeric.
2013-03-22 12:26:15 +01:00
Norman Maurer
624bda4695
Make sure cancelled scheduled tasks will not run again if cancelled before
2013-03-22 08:13:21 +01:00
Trustin Lee
19ffdd5c29
Revamp the selector auto rebuild checker
...
- Count the number of select() calls made to wait until reaching at the expected dead line, and rebuild selectors if too many select() calls were made.
2013-03-22 14:33:47 +09:00
Trustin Lee
fa02ffddae
Remove TaskScheduler and ImmediateEventExecutor that requires TaskScheduler
...
- Related issue: #817
2013-03-22 09:06:08 +09:00
Trustin Lee
4097dee49d
Make SingleThreadEventExecutor independent from TaskScheduler
...
- Related issue: #817
2013-03-22 09:00:38 +09:00
Trustin Lee
cfa2f72681
Fix checkstyle
2013-03-21 19:01:53 +09:00
Trustin Lee
a980638190
Ensure the best effort is made even if future listeners could not be notified / Handle registration failure in a robust manner
...
- Related: #1187
2013-03-21 17:48:10 +09:00
Trustin Lee
8b722d29a7
Add constructor parameters that do not perform type parameter auto-detection for the languages without type parameters
...
- Fixes #1177
- Add TypeParameterMatcher.get(parameterType)
- Add alternative constructors
2013-03-21 16:11:47 +09:00
Norman Maurer
ce87b627be
Let EventExecutor return our Future to allow the user to work also with FutureListener here. Also add a special ScheduledFuture that extends our Future for this purpose.
2013-03-19 10:45:42 +01:00
Trustin Lee
2a87950784
[maven-release-plugin] prepare for next development iteration
2013-03-16 18:41:36 +09:00
Trustin Lee
adfb29330b
[maven-release-plugin] prepare release netty-4.0.0.Beta3
2013-03-16 18:40:59 +09:00
Trustin Lee
d19b575c31
Fix an incorrect modulo operation
2013-03-14 13:17:07 +09:00
Trustin Lee
4323fea5fb
Fix a bug where TypeParameterMatcher does not detect the case where the type parameter is derived from an outer class
...
- Fixes #1153
2013-03-14 07:22:44 +09:00
Trustin Lee
8dcb1387e3
Add I/O ratio parameter to NioEventLoop
...
- Add SingleThreadEventExecutor.runAllTasks(timeout)
- Add NioEventLoop.ioRatio property
- Merge SelectorUtil into NioEventLoop
2013-03-14 06:49:08 +09:00
Trustin Lee
cef81f1bff
Revert e66fc219ff
2013-03-12 16:44:25 +09:00
Norman Maurer
17ebbdec20
Let ChannelGroupFuture extends ChannelFuture and ChannelGroupFutureListener GenericFutureListener
2013-03-12 08:35:39 +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
8d7f1e2820
Add stacktrace to the IllegalStateException which is thrown if a Promise was notified before
2013-03-08 15:11:29 +01: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
Trustin Lee
41ab17b9bf
Fix inspection warnings in HashedWheelTimer
2013-03-08 08:45:17 +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
88cc8c1739
[ #1065 ] Provide Future/Promise without channel reference
2013-03-07 07:21:37 +01:00
Trustin Lee
c5f606e632
Warn in case of incomplete low-level API
2013-03-05 18:06:01 +09:00
Trustin Lee
8d88acb4a7
Change ByteBufAllocator.buffer() to allocate a direct buffer only when the platform can handle a direct buffer reliably
...
- Rename directbyDefault to preferDirect
- Add a system property 'io.netty.prederDirect' to allow a user from changing the preference on launch-time
- Merge UnpooledByteBufAllocator.DEFAULT_BY_* to DEFAULT
2013-03-05 17:55:24 +09:00
Trustin Lee
307e6c47d8
Make hasUnsafe() return true only when all necessary low level operations are available for reliable direct buffer access
2013-03-05 17:25:54 +09:00
Norman Maurer
faaff91dd0
Fix checkstyle
2013-03-05 07:06:52 +01:00
Trustin Lee
7e17f71b30
Make PlatformDependent work with the platforms without unaligned access support
2013-03-05 14:27:52 +09:00
Trustin Lee
881bd8eea3
Support array types in JavassistTypeParameterMatcherGenerator
2013-02-28 10:37:55 -08:00
Trustin Lee
b712b030fa
Fix a bug where TypeParameterMatcher fails when a type parameter is an array
...
- Fixes #1103
2013-02-28 10:29:03 -08:00
Trustin Lee
49aa907bd0
[maven-release-plugin] prepare for next development iteration
2013-02-26 16:55:07 -08:00
Trustin Lee
5026c2f359
[maven-release-plugin] prepare release netty-4.0.0.Beta2
2013-02-26 16:54:53 -08:00
Trustin Lee
671f9d48d4
Use ConcurrentHashMapV8 wherever possible
...
- Fixes #1052
2013-02-26 15:54:51 -08:00
Trustin Lee
f67441354a
Move logging classes from internal to internal.logging
...
.. because internal is crowded
2013-02-26 14:54:25 -08:00
Trustin Lee
32affc8c8b
Fix regression in DefaultAttributeMap / Add Attribute.key() / More fine-grained locking
2013-02-21 15:49:51 -08:00
Norman Maurer
6568cbfec4
[ #1071 ] Remove Attribute from map after Attribute.remove() was called
2013-02-21 19:38:23 +01:00
Atsuhiko Yamanaka
8fdf788cbd
[ #1012 ] Replace forked jzlib with official jzlib and add a test.
2013-02-20 12:49:05 +01:00
Norman Maurer
74738fbd08
[ #1061 ] Add workaround to not use PooledUnsafeDirectByteBuf when running on latest OpenJDK6 because of missing Unsafe method
2013-02-19 12:21:08 +01:00
Trustin Lee
d68a04a879
[maven-release-plugin] prepare for next development iteration
2013-02-14 12:56:24 -08:00
Trustin Lee
59e638f8f5
[maven-release-plugin] prepare release netty-4.0.0.Beta1
2013-02-14 12:56:15 -08:00
Trustin Lee
1011227b88
Remove apiviz tags - we are focusing on user guide instead and putting diagrams there
2013-02-14 12:09:16 -08:00
Trustin Lee
742db71a52
Fix IllegalAccessError when Javassist is used
2013-02-13 23:56:55 -08:00
Trustin Lee
53c27ef5ae
More robust type parameter detection
...
- Also removed unnecessary constructors which were added due to incomplete type parameter detection logic
2013-02-13 19:02:55 -08:00
Trustin Lee
b4f4b95739
Move io.netty.logging to io.netty.internal / Move Signal out of internal because we use it in Channel*MessageAdapters
2013-02-11 20:08:18 +09:00
Trustin Lee
a2e5cd94be
Prettify APIviz / Tighten visibility / Move subclasses to top level / Remove unused UnknownSocksMessage
2013-02-11 19:42:23 +09:00
Trustin Lee
8f895a7e9a
More robust type parameter detection
...
- now handles '<List<Integer>>'
2013-02-10 01:50:49 +09:00
Trustin Lee
cedcee3f42
Reduce the potential contention caused by ResourceLeakDetector sampling
2013-02-09 12:27:38 +09:00
Trustin Lee
4df737864e
Revert the previous commit (sorry!)
2013-02-09 12:21:30 +09:00
Trustin Lee
ea6113d7fb
Call PhantomReference.clear() from close()
2013-02-09 12:20:10 +09:00
Trustin Lee
09b022e926
Use PhantomReference insteadof WeakReference for resource leak detection
2013-02-09 12:15:25 +09:00
Trustin Lee
3a12a2db46
Fix checkstyle
2013-02-09 02:37:07 +09:00
Trustin Lee
9a676bc7d5
Faster memory copy between direct buffer and byte array
2013-02-09 01:55:01 +09:00
Trustin Lee
9475f9aeea
Add a system property that disables Javassist
2013-02-08 22:14:38 +09:00
Trustin Lee
54d44c6ac1
Use byte code generation if Javassist is available.
2013-02-08 21:45:14 +09:00
Norman Maurer
2f12f95d9b
Use correct index when try to find the type of the message
2013-02-08 10:40:46 +01:00
Trustin Lee
ff5aec0c78
Replace TypeParameterFinder with TypeParameterMatcher
...
- We can avoid reflective matching using byte code generation.
- Better matching performance when message type is Object
2013-02-08 18:28:06 +09:00
Trustin Lee
646cd455ea
Fix incorrect exception message
2013-02-08 17:25:16 +09:00
Trustin Lee
1eafffbec5
Use thread-local map instead of ConcurrentHashMap for faster instantiation of handler adapters
2013-02-08 17:24:29 +09:00
Trustin Lee
1640b1fea6
Automatically detect the message types in MessageToMessageCodec
2013-02-08 16:12:32 +09:00
Trustin Lee
71136390f1
Extract type parameter finder code to a utility class
2013-02-08 15:57:23 +09:00
Andrei Pozolotin
f24872c566
[ #1010 ] Add verify module to check osgi bundles
2013-02-06 20:13:07 +01:00
Norman Maurer
fd75615d7a
[ #870 ] Convert all modules into osgi bundles
2013-02-06 07:57:11 +01:00
Norman Maurer
2ad1451ce8
Fix semantic of DefaultAttribute impl on setIfAbsent
2013-01-31 11:52:36 +01:00
Trustin Lee
39357f3835
Enable TCP_NODELAY and SCTP_NODELAY by default
...
- Fixes #939
- Add PlatformDependent.canEnableTcpNoDelayByDefault()
- Currently returns false on Android. Will change if necessary later.
2013-01-31 12:17:09 +09:00
Trustin Lee
b60e0b6a51
Modernize InternalLogger API and enable logging framework autodetection
...
- Borrow SLF4J API which is the best of the best
- InternalLoggerFactory now automatically detects the logging framework
using static class loading. It tries SLF4J, Log4J, and then falls back
to java.util.logging.
- Remove OsgiLogger because it is very likely that OSGi container
already provides a bridge for existing logging frameworks
- Remove JBossLogger because the latest JBossLogger implementation seems
to implement SLF4J binding
- Upgrade SLF4J to 1.7.2
- Remove tests for the untestable logging frameworks
- Remove TestAny
2013-01-19 20:50:52 +09:00
Trustin Lee
24acfe7008
Remove io.netty.monitor as discussed in #922
2013-01-18 11:08:57 +09:00
Trustin Lee
337f5bbb8e
Automatic diagnosis of resource leaks
...
Now that we are going to use buffer pooling by default, it is obvious
that a user will forget to call .free() and report memory leak. In this
case, we should have a tool to determine if it is a bug in our allocator
implementation or in the user's code.
This pull request adds a system property flag called
'io.netty.resourceLeakDetection'. If set, when a user forgets to call
.free(), the ResourceLeakDetector will detect it and log a message with
detailed stack trace to tell where the leaked buffer has been allocated.
Because obtaining stack trace is an expensive operation, I used sampling
technique. Allocation is recorded only for every 113th allocation. I
chose 113 because it's a prime number.
In production, a user might not want to enable this option due to
potential performance impact. If a user does not specify the
'-Dio.netty.resourceLeakDetection' option leak detection is disabled.
Even if the leak detection is enabled, the overhead should be less than
5% because only ~1% of allocations are monitored.
I also replaced SharedResourceMisuseDetector with ResourceLeakDetector.
2013-01-15 14:15:27 +09:00
Trustin Lee
04bae9bceb
Use sun.misc.Unsafe to access a direct ByteBuffer
...
- Add PooledUnsafeDirectByteBuf, a variant of PooledDirectByteBuf, which
accesses its underlying direct ByteBuffer using sun.misc.Unsafe.
- To decouple Netty from sun.misc.*, sun.misc.Unsafe is accessed via
PlatformDependent.
- This change solely introduces about 8+% improvement in direct memory
access according to the tests conducted as described in #918
2013-01-11 16:25:12 +09:00