Commit Graph

672 Commits

Author SHA1 Message Date
Simone Bordet 07c9bc5a51 Fixes #1169 - HTTP/2 reset on a stalled write does not unblock writer thread.
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.
2016-12-14 11:07:00 +01:00
Simone Bordet 3a3978f86b Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-12-13 10:16:36 +01:00
Simone Bordet bc3c3ff9c8 Improved logging. 2016-12-12 16:00:12 +01:00
Jesse McConnell 6a7e5dd4f5 Updating to version 9.4.1-SNAPSHOT 2016-12-08 09:41:50 -06:00
Jesse McConnell c54efb5929 Updating to version 9.4.0.v20161208 2016-12-08 08:56:45 -06:00
Jesse McConnell 19333b8b3b Merge branch 'jetty-9.4.x' into release-9.4.0 2016-12-08 08:50:15 -06:00
Simone Bordet a721e8b25d Fixes #1148 - Support HTTP/2 HEADERS trailer. 2016-12-08 10:08:56 +01:00
Jesse McConnell f8338b3f59 Updating to version 9.4.1-SNAPSHOT 2016-12-07 10:32:41 -06:00
Jesse McConnell dac1d17a2d Updating to version 9.4.0.v20161207 2016-12-07 09:47:30 -06:00
Greg Wilkins ec0b1ea847 Issue #1134 HPACK
Improved exceptions when receiving unknown index or a field that cannot be indexed.
2016-12-02 13:40:58 +11:00
Greg Wilkins daffbfc528 Issue #1134 HPACK
Improved exceptions when receiving unknown index or a field that cannot be indexed.
2016-12-02 13:35:53 +11:00
Greg Wilkins 3ea2d1cf95 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-12-02 13:01:26 +11:00
Greg Wilkins b6b33bd679 Issue #1134 HPACK
Added test that demonstrates large headers are incorrectly indexed
Do not index fields if too large to fit
2016-12-02 10:27:14 +11:00
Simone Bordet e78c117c01 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-11-14 22:30:08 +01:00
Simone Bordet 5e5d6913e6 Fixes #1099 - PushCacheFilter pushes POST requests. 2016-11-14 22:28:27 +01:00
Greg Wilkins 6781a949b1 Issue#1066 Simplify HttpGeneration
Reduce the transformations needed on header fields, so they can be more often
set directly and no need to split and recombine.

The Content-Length field is added IF it is needed for framing or if it was explicitly set

The Transfer-Encoding: chunk field is used only as a hint that there is content.

Connection fields are used as is, but are checked for close and keep-alive
2016-11-03 16:55:33 +11:00
Joakim Erdfelt 2c38511828 Updating to version 9.3.15-SNAPSHOT 2016-10-28 13:01:34 -07:00
Joakim Erdfelt 14611d2f76 Updating to version 9.3.14.v20161028 2016-10-28 12:21:02 -07:00
Simone Bordet c6ad87c3f9 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-10-27 16:55:12 +02:00
Simone Bordet 5ad8f2a777 Guarded against NPE if the channel is not associated with the stream. 2016-10-27 16:45:12 +02:00
Simone Bordet 8fef113372 Fixes #1046 - Improve HTTP2Flusher error report.
Now remembering the cause of the termination, and propagating it to
other components.
2016-10-27 15:43:41 +02:00
Simone Bordet b741b454af Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-10-25 15:45:56 +02:00
Simone Bordet 33eb768d69 Fixes #1029 - Restore Request.setHttpVersion().
Also cleaned up the asymmetry in MetaData between the setter
(setHttpVersion()) and the getter (getVersion()).
2016-10-25 15:45:29 +02:00
Joakim Erdfelt ade14ba34b Updating to version 9.3.14-SNAPSHOT 2016-10-14 11:33:51 -07:00
Joakim Erdfelt c3a78e70a8 Updating to version 9.3.13.v20161014 2016-10-14 10:39:37 -07:00
Greg Wilkins 9d475a624b Normalize tags #998 2016-10-13 10:06:17 +11:00
Greg Wilkins 91e9e7b76a Issue #984 Improve module listing 2016-10-06 17:01:08 +11:00
Greg Wilkins 4eca898ab0 fixed race in test 2016-10-05 16:20:45 +11:00
Jesse McConnell 863913b64e set for dev 2016-09-30 19:05:47 +00:00
Jesse McConnell b91cc8a4ea set for release 2016-09-30 18:01:20 +00:00
Simone Bordet 7e376fd9da Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-28 11:53:54 +02:00
Simone Bordet 0f97c3df5d Fixes #966 - Remove usages of ConcurrentArrayQueue. 2016-09-28 11:40:39 +02:00
Simone Bordet 6c4d6baa2e Returning longs for getMessagesIn() and getMessagesOut(). 2016-09-26 23:18:07 +02:00
Simone Bordet a292ef0652 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-26 15:52:18 +02:00
Simone Bordet 4fcf22a2c5 Fixes test after the changes for #960. 2016-09-26 15:51:25 +02:00
Simone Bordet 716c595cdf Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-26 12:20:22 +02:00
Simone Bordet 74b86bad35 Fixes #960 - Async I/O spin when reading early EOF.
AsyncIOServletTest is now testing HTTP/1.1 and HTTP/2 transports.
2016-09-26 11:49:57 +02:00
Simone Bordet a1a132a601 Fixes #959 - CompleteListener invoked twice for HTTP/2 transport and response content. 2016-09-26 10:16:31 +02:00
Simone Bordet 9551d0f62b Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-22 21:57:12 +02:00
Simone Bordet 4edc50b59f Fixes #948 - 9.4.0.RC0 jetty-distribution invalid config etc/jetty-http2c.xml.
Updated references to deprecated property initialStreamSendWindow
with initialStreamRecvWindow.
2016-09-22 21:48:08 +02:00
Joakim Erdfelt 6cf10172ca Updating to version 9.3.13-SNAPSHOT 2016-09-15 07:34:52 -07:00
Joakim Erdfelt 8b35fdc5a5 Updating to version 9.3.12.v20160915 2016-09-15 06:48:16 -07:00
Simone Bordet e3fcb018c4 Fixed merge from branch 'jetty-9.3.x'. 2016-09-14 21:53:35 +02:00
Simone Bordet 186ad447de Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-14 17:02:48 +02:00
Simone Bordet 464dd0667a Issue #922 - Implements methods Connection.getBytes[In|Out]().
Using int rather than long as return value for generated bytes.
2016-09-14 16:57:11 +02:00
Simone Bordet 5ec60a30ed Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-14 16:44:39 +02:00
Simone Bordet aa00e4207d Issue #922 - Implements methods Connection.getBytes[In|Out]().
Implemented for HTTP/2.
2016-09-14 14:04:23 +02:00
Simone Bordet 448100ff80 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-06 12:02:01 +02:00
Simone Bordet 6d485b2777 Fixes #902 - Expect: 100-Continue does not work with HTTP/2.
Improved handling of the 100 status code in both client and server.
2016-09-06 12:01:24 +02:00
Simone Bordet e21ad09e3a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-05 23:09:12 +02:00
Simone Bordet 705a68dfc4 Issue #845 - Improve blocking IO for data rate limiting.
Moved tests to run HTTP and HTTP/2 tests, and added more test cases.
2016-09-05 19:13:05 +02:00
Greg Wilkins 3d93d39b39 Issue #845 data rate limits
Initial thoughts
2016-08-16 16:24:14 +10:00
Simone Bordet 13f638f710 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-14 23:29:36 +02:00
Simone Bordet 11bc5cce66 Fixes #839 - Test Failure: MaxConcurrentStreamsTest.testOneConcurrentStream().
Fixed race condition where the prime request response was arriving to
the client before the server had finished to clean up and remove the
prime stream. Subsequent client requests were rejected because the
prime stream was still "alive".
2016-08-14 23:25:03 +02:00
Simone Bordet 0140d09997 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'.
Restored backwards compatibility on Stream.Listener interface.
2016-08-14 12:22:54 +02:00
Simone Bordet efc5265fe5 Improved javadocs. 2016-08-14 12:17:35 +02:00
Simone Bordet c5a2770790 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-12 17:12:25 +02:00
Simone Bordet ea20a5f2ef Fixes #836 - Test Failure: HttpClientTransportOverHTTP2Test.testLastStreamId()
Fixed race condition: the completion was happening before the stream
promise for the request was succeeded.
2016-08-12 17:10:43 +02:00
Simone Bordet 6f20feddcb Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-12 14:57:47 +02:00
Simone Bordet 9f9e9ecaf9 Changes for Issue #824 (#825)
* Issue #824 - Implement notifications of asynchronous error conditions for HTTP/2.

Introduced new method HttpChannelState.asyncError() to be called in
case of asynchronous errors, i.e. those errors that do not happen in
the HttpChannel.handle() loop.

Implemented HTTP/2 callbacks to call HttpChannelState.asyncError()
and plug in the existing error handling mechanism.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>

* Issue #824 - Implement notifications of asynchronous error conditions for HTTP/2.

Improved implementation to ignore idle timeouts for streams and
session in case that requests are being handled, matching the HTTP/1.1
behavior.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2016-08-12 11:02:52 +02:00
Simone Bordet c3b37cfbff Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-09 22:50:06 +02:00
John Gardiner Myers c1694ba9c3 Add protected HttpClientTransportOverHTTP2.getHttpClient() accessor
Signed-off-by: John Gardiner Myers <jgmyers@proofpoint.com>
2016-08-09 22:45:54 +02:00
Simone Bordet 3c38e92898 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-09 16:03:26 +02:00
Simone Bordet 5073ba4787 Fixes #826 - Better default for HTTP/2's max concurrent streams.
Defaulted to 128 max concurrent streams.
2016-08-09 16:02:34 +02:00
Simone Bordet 49214a9d61 Fixed compilation issue. 2016-08-08 23:24:59 +02:00
Simone Bordet f695d9cf31 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-06 12:31:47 +02:00
Simone Bordet 45695e08aa Fixes #792 - [HTTP/2] Socket seems to be not closed completely.
Now sending the GOAWAY and then disconnecting from doStop(), ensuring
that the underlying TCP connection is closed even if the server does
not close.
2016-08-06 12:31:20 +02:00
Simone Bordet 92c7b991d8 Code cleanups. 2016-08-06 12:31:20 +02:00
Greg Wilkins 9b0951d5c5 increase test timeout 2016-08-05 17:04:14 +10:00
Simone Bordet a38feda9a0 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-29 12:09:27 +02:00
Simone Bordet 2cdea3601b Fixes #790 - AsyncContentListener semantic broken with HTTP/2 transport.
Now using an IteratingCallback to buffer DATA frames and delivering
their content respecting AsyncContentListener semantic.
2016-07-29 12:08:55 +02:00
Joakim Erdfelt 2830e51e04 Merge branch 'jetty-9.3.x' into release-9.3.11 2016-07-28 12:20:36 -07:00
Joakim Erdfelt 87c8e1c019 Merge branch 'jetty-9.3.x' into jetty-9.4.x 2016-07-25 17:02:51 -07:00
Greg Wilkins e53ea55f48 Issue #752 SETTINGS_MAX_HEADER_LIST_SIZE
Defined missing status codes (removed old/wrong javadoc)
Changed use of 413 to 431
Received SETTINGS_MAX_HEADER_LIST_SIZE is set on hpack encoded and warning generated only for large responses.
2016-07-23 12:17:50 +10:00
Jesse McConnell 85af98b483 Merge branch 'jetty-9.3.x' into jetty-9.4.x 2016-07-22 12:08:40 -05:00
Joakim Erdfelt 6e1b1cdb36 Updating to version 9.3.12-SNAPSHOT 2016-07-21 19:07:19 -07:00
Joakim Erdfelt 9fd6d4354e Updating to version 9.3.11.v20160721 2016-07-21 18:37:09 -07:00
Greg Wilkins 849d51c07d Issue #752 - Implement support for HTTP2 SETTINGS_MAX_HEADER_LIST_SIZE.
Reverted to warning if a small SETTINGS_MAX_HEADER_LIST_SIZE. is received.
Setting it on the httpConfig effects all connections, not just the one the
setting was received from.
2016-07-22 09:52:52 +10:00
Simone Bordet cceec33f54 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-21 19:12:38 +02:00
Simone Bordet 088dc036b4 Fixes #752 - Implement support for HTTP2 SETTINGS_MAX_HEADER_LIST_SIZE. 2016-07-21 19:12:10 +02:00
Simone Bordet 823ba4add6 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-21 18:15:38 +02:00
Simone Bordet 6a15bbfb2b Issue #751 - Remove usages of ArrayQueue. 2016-07-21 17:55:48 +02:00
Simone Bordet cf0ecbd88f Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-21 17:50:08 +02:00
Simone Bordet 78d27c9a28 Fixes #755 - NPE in HttpChannelOverHTTP2.requestContent().
Fixed by recycling only channels that have completed normally by
having read the request content and responded.

Channels that don't read the request content won't be recycled, thus
avoiding the NPE.
2016-07-21 17:43:14 +02:00
Greg Wilkins 6e4abb3339 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-21 12:29:54 +10:00
Greg Wilkins 2db91a88cf HTTP2 SETTINGS_MAX_HEADER_LIST_SIZE #752 2016-07-21 12:28:32 +10:00
Greg Wilkins 950c4d4b70 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-21 11:12:26 +10:00
Greg Wilkins 2f4a6f29b7 Do not use ArrayQueue for HPACK #751 2016-07-21 11:07:55 +10:00
Simone Bordet 0d8f1b9e69 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-19 10:34:19 +02:00
Simone Bordet 766e5ab2ae Fixes #739 - Illegal WindowUpdate frame with delta=0.
Using compareAndSet() rather than getAndSet().
2016-07-19 10:33:43 +02:00
Simone Bordet 6adb5eb031 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-15 18:12:02 +02:00
Simone Bordet a3b5e7ebb7 Added guards against NPE in case HttpField.getValue() returns null. 2016-07-15 15:45:50 +02:00
Simone Bordet 389eb68c3c Code cleanups. 2016-07-15 15:45:50 +02:00
Greg Wilkins 29bad418c1 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-15 13:48:15 +10:00
Greg Wilkins 45ead1bb29 jetty http2 client parse error #726 2016-07-15 13:47:41 +10:00
Simone Bordet 9c472f959a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-14 16:19:18 +02:00
Simone Bordet 7172127236 Fixes #694 - http2.client.StreamResetTest.testServerExceptionConsumesQueuedData stack not suppressed in test 2016-07-14 16:18:55 +02:00
Simone Bordet d976b4d36a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-14 12:44:15 +02:00
Simone Bordet 2387d973ec Made test more robust on slower machines. 2016-07-14 12:43:33 +02:00
Greg Wilkins 34a9e43c50 restored long test timer 2016-07-14 15:17:50 +10:00