* Issue #1327 - Removing non-standard (Microsoft only) %uXXXX support
* Issue #1322 - Removing attempts at "solving" bad behavior in UrlEncoded
+ No longer captures NumberFormatException and Utf8Exception and
NotUtf8Exception for purposes of "recovering" from a bad encoding.
+ Introduces UrlEncode.decodeHexChar() and .decodeHexByte() to make
reporting of bad encoding more clear.
* Issue #1316 - throw a BadMessageException on bad parameter parsing
+ If BadMessageException is uncaught by the webapp, this will result
in an error 400 response message.
+ If an application decides to catch the BadMessageException, they can
choose to ignore the exception and do their own error reporting.
+ This piggybacks on Issue #1327 and Issue #1322
Tidy up write side.
It cannot be the same as the read side as there is no registration for write interest. There is only write operations and the
callbacks associated with them.
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.
+ Reverting change to HttpTester.parseResponse(Input)
+ Providing new HttpTester.parsePartialResponse(Input)
+ InsufficientBytes tests no longer assert content strings with invalid
characters (this was breaks the surefire report xml)
+ Upgrading to jetty-test-helper 4.0
+ Removing use of org.eclipse.jetty.toolchain.test.SimpleRequest
+ Removing use of org.eclipse.jetty.toolchain.test.http.SimpleHttpParser
+ Removing use of org.eclipse.jetty.toolchain.test.http.SimpleHttpResponse
+ Updating long since deprecated (and now removed) known quirky methods
in jetty-test-helper and the test classes.
* 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).
The fix notifies the transport when a reset frame is received,
allowing the transport to fail the write callback which then notifies
the application, either by throwing (in case of blocking writes) or
by calling error listeners.
Also added a guard, in HttpChannel.handle() for the ERROR_DISPATCH case,
that checks if the response is already committed, and if so, abort
the transport - similar to what's already there for 9.4.
Introduced isAllowed(InetAddress, HttpServletRequest) so that it
would be possible to make access decisions also based on request
information such as context, path, headers, etc.
* Issue #586 Enhancement for detection of insufficient threads
Do not count acceptors and selectors at server level if connector uses own dedicated thread pool
Signed-off-by: vladimir.bukhtoyarov <jsecoder@mail.ru>
ConnectionFactories may be added after the connector is started.
As such there is always the possibility that creating a new
connection fails because there is no available ConnectionFactory for
that protocol.
Rather than failing with an IllegalStateException instead of a
NullPointerException, we now check at connector start whether the
SslConnectionFactory is properly configured.
This should catch 99% of the cases, where the connector is
misconfigured, reporting the error earlier and explicitly
(connector does not start) rather later and hidden (connection cannot
be created).
Now testing the return value of onEarlyEOF() and calling the
application when the value is true.
This means that the application can now consume the early EOF and the
spin does not happen.