Commit Graph

5622 Commits

Author SHA1 Message Date
Trustin Lee
35ae000c59 Reduce code duplication in DefaultPromise 2014-02-06 22:29:53 -08:00
Trustin Lee
4628d9a672 Fix a race condition in DefaultPromise
.. which occurs when a user adds a listener from different threads after the promise is done and the notifications for the listeners, that were added before the promise is done, is in progress.  For instance:

   Thread-1: p.addListener(listenerA);
   Thread-1: p.setSuccess(null);
   Thread-2: p.addListener(listenerB);
   Thread-2: p.executor.execute(taskNotifyListenerB);
   Thread-1: p.executor.execute(taskNotifyListenerA);

taskNotifyListenerB should not really notify listenerB until taskNotifyListenerA is finished.

To fix this issue:

- Change the semantic of (listeners == null) to determine if the early
  listeners [1] were notified
- If a late listener is added before the early listeners are notified,
  the notification of the late listener is deferred until the early
  listeners are notified (i.e. until listeners == null)
- The late listeners with deferred notifications are stored in a lazily
  instantiated queue to preserve ordering, and then are notified once
  the early listeners are notified.

[1] the listeners that were added before the promise is done
[2] the listeners that were added after the promise is done
2014-02-06 22:05:06 -08:00
Trustin Lee
2b769c6daf Fix resource leaks in WebSocketServerProtocolHandler
- Related: #1975
2014-02-06 21:23:10 -08:00
Trustin Lee
8738bc4ae7 Clean up HttpObjectAggregator 2014-02-06 21:00:24 -08:00
Trustin Lee
b4e3e09b76 Fix a bug that CompositeByteBuf.touch() does nothing 2014-02-06 21:00:05 -08:00
Trustin Lee
c01f08d306 Fix a leak in WebSocketServerProtocolHandshakeHandler
- Related: #1975
2014-02-06 20:57:55 -08:00
Trustin Lee
50f8cc98d1 Fix an inspector warning 2014-02-06 15:03:03 -08:00
Trustin Lee
4a86446053 Fix the potential copyright issue in SocksCommonUtils
- Add StringUtil.toHexString() methods which are based on LoggingHandler's lookup table implementation, and use it wherever possible
2014-02-06 15:01:55 -08:00
Norman Maurer
7a1a30f0ad Provide an optimized AtomicIntegerFieldUpdater, AtomicLongFieldUpdater and AtomicReferenceFieldUpdater 2014-02-06 21:07:31 +01:00
Vladimir Schafer
fc6fa2774e #2183 Fix for releasing of the internal cumulation buffer in ByteToMessageDecoder 2014-02-06 20:09:19 +01:00
Norman Maurer
ff771c0fcb Correctly calculate checksum when using GZIP. Part of [#2168] 2014-02-06 10:48:56 +01:00
Norman Maurer
4f6ccbbb78 [#2173] Fix regression that let HttpRequestDecoder fail if the websocket response and a websocketframe are send in one go 2014-02-06 10:48:48 +01:00
Norman Maurer
be919b372e Allow to skip autobahntestsuite by specify property skipAutobahnTestsuite 2014-02-06 07:11:03 +01:00
Trustin Lee
cadaeb658d Reorganize the SPDY example
- Move the server example to spdy.server
- Move the client example to spdy.client
- Fix inspection warnings
2014-02-05 15:03:03 -08:00
Leonardo Freitas Gomes
20d2fb8c2e SPDY client example
Demonstrates the usage of SPDY from a client perspective. One can also
use a SPDY-enabled browser as a client, but it’s easier to understand
the internals of the protocol from a client point-of-view if you have
some code you can debug.
2014-02-05 14:56:32 -08:00
Vladimir Schafer
5c4063b6a9 #2177 Adding support for bound host and port for the SOCKS5 command response. Changes are fully backward compatible. 2014-02-04 19:22:27 +01:00
Valentin Kovalenko
8f10e7791b Restore of interrupt status after catch of InterruptedException was added 2014-02-03 06:50:31 +01:00
jwilson
ce05320502 Tweak snoop example to send a full HTTP request.
Without this, future HTTP requests on this channel will
silently fail because the HttpObjectEncoder will be left
in an unhappy state.
2014-02-01 18:35:09 +01:00
Norman Maurer
1d8a200849 Not wakeup the EventLoop for writes as they will not cause a flush anyway 2014-02-01 15:00:14 +01:00
Norman Maurer
f7f808c7e0 Better exception message to tell the user why it is not supported 2014-01-30 07:00:53 +01:00
Norman Maurer
cd5103feb7 [#2168] Eliminate unnessary memory copy for heap buffers in JdkZlibEncoder
* Also adjust tests so it test with direct and heap buffers
2014-01-30 06:29:52 +01:00
Norman Maurer
b3e4122499 [#2159] Not fail the ChannelPromise with WriteTimeoutException to prevent warning 2014-01-29 13:56:42 +01:00
Norman Maurer
96f94cfcb1 [#2164] Only reregister SelectionKeys that are still valid 2014-01-29 07:19:41 +01:00
Trustin Lee
143951ac5f Remove code duplication 2014-01-29 12:12:46 +09:00
Trustin Lee
e2940da4ad Exclude sun.nio.ch.DirectBuffer from animal-sniffer check 2014-01-29 12:00:09 +09:00
MiddleBen
f3f2d143e3 Simplify the acquisition of Cleaner 2014-01-29 12:00:09 +09:00
Trustin Lee
0f1b1be0aa 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-01-29 11:44:59 +09:00
Trustin Lee
3061b154c3 Fix inspector warnings 2014-01-28 20:17:13 +09:00
Trustin Lee
65ebecb85f Touch a ReferenceCounted while it traverses across a pipeline 2014-01-28 20:10:19 +09:00
Trustin Lee
b887e35ac2 Add ReferenceCounted.touch() / Add missing retain() overrides
- Fixes #2163
- Inspector warnings
2014-01-28 20:06:55 +09:00
Norman Maurer
928901c593 [#2161] Reduce the verbosity of the autobahntestsuite by eliminate the printed stacktraces 2014-01-28 06:57:39 +01:00
Trustin Lee
35525afda3 Revert "Increase permgen space for javadoc creation"
This reverts commit 491b2fd69a.
2014-01-28 14:01:39 +09:00
Trustin Lee
7d501db7f8 Fix API documentation on the usage of AttributeKey 2014-01-28 13:57:08 +09:00
Norman Maurer
f122118bf7 Not throw an exception if subprotocol is not supported but just drop the header as stated in the RFC's 2014-01-26 11:00:40 +01:00
Norman Maurer
491b2fd69a Increase permgen space for javadoc creation 2014-01-25 16:01:02 +01:00
Norman Maurer
f0032d5f40 Run the autobahntestsuite as part of the testsuite 2014-01-25 14:09:31 +01:00
Trustin Lee
714ed77e17 Add a log message on deletion failure 2014-01-24 16:45:20 +09:00
Frederic Bregier
19f9bcfe8b Fix fileChannel not closed, preventing delete to occur correctly 2014-01-24 16:45:20 +09:00
Norman Maurer
cac449a5e4 Add testcase to try to reproduce #2144 2014-01-23 07:10:08 +01:00
Norman Maurer
2b63d2d0cd Make sure we not leak messages in the SPDY example 2014-01-21 07:34:30 +01:00
Norman Maurer
36166a4faa Make use of a Logger in the SPDY example and simplify it a bit 2014-01-21 07:17:58 +01:00
Veebs
09fdb08fe4 SPDY example app 2014-01-21 07:17:58 +01:00
Trustin Lee
2be6d1bcc1 Disable Javassist completely on Android
- Related: #2127
- Inspector warnings
2014-01-21 14:25:31 +09:00
Frederic Bregier
ce39e6409e Fix try to delete file while it does not exist anymore (see #2102 and #1713) in reference to this issue 2014-01-21 14:16:59 +09:00
Norman Maurer
0f70921d2a [#2058] Use correct MANIFEST.MF file for source jars 2014-01-20 14:42:16 +01:00
Trustin Lee
13f508154a Merge the attribute map of ChannelHandlerContext into Channel
- Fixes #2136
2014-01-20 15:16:12 +09:00
Trustin Lee
a69c4f2371 Fix IllegalReferenceCountException which occurs when multipart data is stored in memory
- Fixes #2102
2014-01-19 17:51:20 +09:00
Trustin Lee
a4e587c46b Fix resource leak in HttpPostRequestEncoderTest / Typo 2014-01-19 16:52:13 +09:00
Trustin Lee
5f9854d8ac Fix resource leak in InternalAttribute.setValue() 2014-01-19 16:51:31 +09:00
Trustin Lee
eb4ef433c6 Fix a test failure in Windows due to newline differences 2014-01-19 16:13:49 +09:00