Fixed by calling tryFillInterested() rather than fillInterested() to
cope with the race between reads scheduling read interest and
setWriteListener() that also executes code in
HttpChannelState.unhandle() that wants to schedule read interest.
* Updated Maven plugins to versions that support JDK 9.
* Added jdk9 profiles to the build files.
* Introduced modules jetty-alpn-java-client and jetty-alpn-java-server
containing a pure JDK 9 implementation of ALPN.
* Wired ALPN connection factories (client and server) to use the proper
ALPN implementation based on the JDK platform version (8 or 9).
Removed wake() call from within pollContent
Instead the EOF status is evaluated :
- when setReadListener is called
- when read returns -1
- when run() is called before calling either onDataAvailable or onAllDataRead
Squashed commit of the following:
commit 6a345356998331a90e60c7ee8ee590920464c72f
Merge: 92bc0e9 60d9001
Author: Greg Wilkins <gregw@webtide.com>
Date: Mon Nov 7 09:46:23 2016 +1100
Merge branch 'jetty-9.4.x' into jetty-9.4.x-issue-1074
commit 92bc0e9f3aafdce2f4aa7b2fde31affc942be042
Author: Greg Wilkins <gregw@webtide.com>
Date: Sat Nov 5 18:24:00 2016 +1100
Issue #1074
Do not do async IO callbacks if completed
commit ee220a12d1e6c5f6e39b4597a209c5043aa775cf
Author: Greg Wilkins <gregw@webtide.com>
Date: Sat Nov 5 16:22:55 2016 +1100
Issue #1074
Turned off debug
improved proxy test to be able to run with debug on
commit e2fb0b9ef1ec422a2c82cb388820581e359234ba
Author: Greg Wilkins <gregw@webtide.com>
Date: Sat Nov 5 15:37:27 2016 +1100
Issue #1074
Improved test cases
Handle early EOF
commit 3c47c022fe7e48f82e41d9a208073b64cfeb5af7
Author: Greg Wilkins <gregw@webtide.com>
Date: Sat Nov 5 12:28:15 2016 +1100
provisional implementation
* Issue #382 Request compression
Added identity HttpInput.Interceptor
Moved GZIPContentDecoder to jetty-http
Reworking interceptor and GZIPContentDecoder to avoid data copies
Completed and tested GZIPContentDecoder
Implemented GzipHttpInputInterceptor
updated GzipHandler.java
updated gzip module
use common GZIP decoder
Gzip Bomb
handle read() after empty interception