netty5/common/src/test/java/io/netty/util
Scott Mitchell f2ed3e6ce8 DefaultPromise LateListener Logic Issues
Motivation:
The LateListener logic is prone to infinite loops and relies on being processed in the EventExecutor's thread for synchronization, but this EventExecutor may not be constant. An infinite loop can occur if the EventExecutor's execute method does not introduce a context switch in LateListener.run. The EventExecutor can be changed by classes which inherit from DefaultPromise. For example the DefaultChannelPromise will return w/e EventLoop the channel is registered to, but this EventLoop can change (re-registration).

Modifications:
- Remove the LateListener concept and instead use a single Object to maintain the listeners while still preserving notification order
- Make the result member variable an atomic variable so it can be outside the synchronized(this) blocks
- Cleanup/simplify existing state management code

Result:
Fixes https://github.com/netty/netty/issues/5185
2016-05-09 10:33:40 -07:00
..
concurrent DefaultPromise LateListener Logic Issues 2016-05-09 10:33:40 -07:00
internal Make all InternalLoggerFactory implementations be singletons 2016-04-08 09:39:32 +02:00
AsciiStringCharacterTest.java Helper method to get mime-type from Content-Type header of HttpMessage 2016-03-03 15:18:39 +01:00
AsciiStringMemoryTest.java HttpConversionUtil does not account for COOKIE compression 2015-12-08 20:00:31 -08:00
AttributeKeyTest.java Allow to get existing ChannelOption / AttributeKey from String 2015-02-18 09:29:37 +01:00
ConstantPoolTest.java Fix a ConstantPoolTest failure 2014-07-29 15:46:15 -07:00
DefaultAttributeMapTest.java Document the contract of Attribute.getAndSet(...) and set(...) 2015-04-14 09:53:53 +02:00
DomainNameMappingTest.java Builder to construct DomainNameMapping. 2015-12-20 18:50:09 +01:00
HashedWheelTimerTest.java [#2744] Fix flakey HashedWheelTimerTest.testExecutionOnTime() 2014-08-06 07:03:31 +02:00
NetUtilTest.java Fix checkstyle 2014-11-12 12:28:18 +09:00
RecyclerTest.java [#4147] Allow to disable recycling 2015-08-28 15:05:17 +02:00
ThreadDeathWatcherTest.java Refactor FastThreadLocal to simplify TLV management 2014-06-19 21:13:55 +09:00