* DelimiterBasedFrameDecoder and LengthFieldBasedFrameDecoder must
expose the fail-fast option consistently
* Renamed failImmediatelyOnTooLongFrame to failFast
* 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
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()
* 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.
Query string parameters need to be decoded as per RFC 3986, Section 2.
The implementation of the URLDecoder in the JDK is slow because it takes
long and inefficient code paths, and it generates a lot more garbage
than necessary. This decoder is about 2x faster and doesn't allocate
any memory in the easy case where the decoded string is unchanged.
When the string needs to be changed, only one buffer is allocated for
the decoded string.
** Redefined ThreadNameDeterminer
* Improved caching in AbstractChannel.toString()
* Improved overall OIO thread naming (thread ID number is a large number which doesn't look good though. will fix it later)
* HeapChannelBuffer.slice(index, length) and ByteBufferBackedChannelBuffer.slice(index, length) should update indexes when they created a slice using duplicate()
* Added relevant test cases