* Fixed a bug where TooLongFrameException is not raised immediately when the large frame was fully decoded at the first attempt
* Fixed a bug where LengthFieldBasedFrameDecoder does not reset its state completely after raising TooLongFrameException
ChunkedWriteHandler.discard() do not issue write requests to trigger exceptionCaught events and to notify write futures anymore. Instead, it triggers exceptionCaught events and notifies write futures by itself. Therefore, no write lock is involved during discard(), avoiding the reported dead lock.
However, this is a temporary solution, and eventually Netty must introduce more robust event thread model.
* Reverted back the workaround for servers that sends unnecessary zero-byte chunk in a HEAD response because it actually breaks the codec when the server that conforms to the RFC.
* Fixed a bug in SslHandler where a write attempt made after SSLEngine is closed result in unnotified future. Fixed by respecting the case where SslEngineResult.Status == CLOSED
* Fixed a race condition where NioSocketChannel's state variable is updated *after* its close future is notified
* Removed unnecessary use of ChannelFutureListeners in NioSocketChannel and AbstractChannel
calling encode(). Without the fix, it ended up in calling the
exception "java.lang.StringIndexOutOfBoundsException".
* Also added test case to verify the patch
Change-Id: Ib96425e07ab50be027ade7be0748cceb6438a586
* Added get/setDateHeader() methods that works with custom date
headers
* Removed get/setDateInMilliseconds() methods because they can be
simply represented with a chained getTime() call
* Fixed the inconsistent behavior & contract of
HttpHeaders.getContentLength() which does not throw an exception when
the header is missing or ill-formatted unless a default value is
specified
* Added clearHeaders() and removeHeader() to HttpHeaders
* Tabs to spaces
* Merged CookieDateFormat into HttpHeaderDateFormat, which can parse all
known date format variants related with HTTP
* Added HttpHeaders.get/setDate()
concurrently initialized and destroyed
* Made ReadTimeoutHandler @Sharable
* Updated the UptimeClient again
** no static fields for global state - just reuse the handlers.
* Missing @Override annotations
* Indirect access to a private member from inner classes
* Incorrect @see javadoc tags (should not use the @link tag)
* ..
I had to change the surefire fork policy from "never" to "once", as it seems the classloader settings used
by the maven process were preventing jmock from mocking package private interfaces.