Commit Graph

772 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
Simone Bordet 2954ef0fd8 Merge branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-13 20:10:08 +02:00
Simone Bordet 811549a06b Made test more robust on slower machines. 2016-07-13 20:06:42 +02:00
Jan Bartel 6628a42d5d Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-13 15:32:03 +10:00
Greg Wilkins cb42ffc706 improved test timeouts 2016-07-13 15:23:46 +10:00
Greg Wilkins c27d71a5a8 Expose public constructor for #689 2016-07-13 11:59:46 +10:00
Greg Wilkins 4055146dcd Fix #671 Incorrect default SLPN protocol 2016-07-13 11:09:53 +10:00
Greg Wilkins cc842aff2b Issue #689 disable http2 draft versions 2016-07-06 13:17:50 +10:00
Jesse McConnell ae931538ab [maven-release-plugin] prepare for next development iteration 2016-06-22 13:59:10 -05:00
Jesse McConnell df1ed4fb03 [maven-release-plugin] prepare release jetty-9.3.11.M0 2016-06-22 13:59:06 -05:00
Jesse McConnell 030ec61837 [maven-release-plugin] prepare for next development iteration 2016-06-22 09:14:25 -05:00
Jesse McConnell 9a4cb41122 [maven-release-plugin] prepare release jetty-9.3.11.M0 2016-06-22 09:14:21 -05:00
Jesse McConnell e7034117ea [maven-release-plugin] prepare for next development iteration 2016-06-21 08:50:13 -05:00
Jesse McConnell 16c435c69d [maven-release-plugin] prepare release jetty-9.3.10.v20160621 2016-06-21 08:50:09 -05:00
Simone Bordet b3fda0b733 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-20 23:11:16 +02:00
Simone Bordet 442a7ce8cc Improved logging. 2016-06-20 23:10:44 +02:00
Simone Bordet 9632019e18 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-17 11:54:24 +02:00
Simone Bordet fdd1cd1e94 Fixes #647 - HTTP/2 CONTINUATION frame parsing throws IllegalStateException.
Added the missing "break" statement.
2016-06-17 11:53:58 +02:00
Simone Bordet 1cec689ece Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-17 10:26:16 +02:00
Simone Bordet 9d9f68da08 Reduced logging level for MAX_HEADER_LIST_SIZE. 2016-06-17 10:25:45 +02:00
Simone Bordet a8f25b550f Fixes #487 - JDK 9 build compatibility.
Fixes #306 - Merge jetty-parent into jetty-project.

- Removed jetty.parent dependency, moving all relevant sections to
jetty.project's pom.xml.
- Introduced profiles for JDK 8 only modules and configuration, and
for JDK 9 only modules and configurations.
- Major cleanup of pom.xml files.
- All Maven Plugin now declared in alphabetical order in
pluginManagement section of jetty.project's pom.xml.
2016-06-06 21:28:51 +02:00
Greg Wilkins 66ce47923e Issue #572 Ignore failing test pending further analysis 2016-06-03 09:08:44 +10:00
Greg Wilkins 98c328fb23 Jetty 9.4.x 572 (#614)
* Issue #572 Scheduling Strategy Deadlocks

Implemented dual strategy idea from #572 discussion

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* fixed http2 strategy choice

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* code cleanups

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* clean up seelctor actions/products

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* cleanups
2016-06-03 09:07:00 +10:00
Simone Bordet b912c700ee Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-25 19:27:46 +02:00
Simone Bordet f3a805887e Fixes #542 - Support Connection.Listener bean on clients.
Introduced ClientConnectionFactory.customize() to look for
Connection.Listener beans.
ClientConnectionFactory implementation calls customize() when they
create a Connection instance, so the Connection.Listener beans are
registered onto the Connection.
2016-05-25 19:27:08 +02:00
Simone Bordet f6098497c0 Explicitly setting the EndPoint idle timeout in case
HttpClient.idleTimeout has changed after start().
2016-05-25 19:27:08 +02:00
Simone Bordet 6bf3607444 Fixed toString() NPE in case the stream is null. 2016-05-25 19:27:08 +02:00
Simone Bordet 016a7b72a1 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-24 16:10:00 +02:00
Simone Bordet ddddc3a675 Fixes #574 - Introduce a TLS handshake completed listener.
Introduced class SslHandshakeListener that can be registered as a
bean in both the ServerConnector and in clients such as HttpClient
and HTTP2Client.

When creating SslConnection instances, the factory will query the
connector (client or server) for SslHandshakeListener beans and, if
present, will be added to the SslConnection.
2016-05-24 16:09:19 +02:00
Simone Bordet 5fe1ff697e Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-24 12:42:12 +02:00
Simone Bordet d73c60db14 Issue #464 - Improve reporting of SSLHandshakeException. 2016-05-24 11:15:18 +02:00
Simone Bordet b879b58909 Removed @Ignore from test. 2016-05-20 11:20:29 +02:00
Simone Bordet ee11e65a8a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-20 11:18:23 +02:00
Simone Bordet c8c74da50a Issue #581 - Initial session recv window setting not working.
Updating the local session receive window before sending it to the client.
2016-05-20 11:17:50 +02:00
Simone Bordet 54ae36f8f1 Temporarily ignoring test.
The test fails because it hangs on session flow control window
exhaustion. Setting the session flow control window to large values
makes the test fail in a different way. Needs review.
2016-05-20 01:21:36 +02:00
Simone Bordet fab61b9157 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-20 01:12:51 +02:00
Simone Bordet d55aaa4a0c Improved logging. 2016-05-20 01:12:24 +02:00
Jesse McConnell dc4574f380 [maven-release-plugin] prepare for next development iteration 2016-05-17 17:30:17 -05:00
Jesse McConnell 0bbebec1e0 [maven-release-plugin] prepare release jetty-9.3.9.v20160517 2016-05-17 17:30:13 -05:00
Simone Bordet 039ced6e25 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-16 15:13:54 +02:00
Simone Bordet dee3331ffb Issue #572 - Don't reject HTTP/2 requests without body in low threads mode.
* Made ProduceExecuteConsume the default ExecutionFactory for HTTP/2.
* Made the HTTP/2 fillable callback non-blocking.
* Introduced configuration for the server initial session recv window.
* Sending a WINDOW_UPDATE frame at session setup to inform the client
 about the server session recv window.
2016-05-16 15:01:08 +02:00
Simone Bordet 67ea8db5aa Always copy the request metadata.
This is necessary because the HTTP/1.1 machinery will recycle the
Metadata.Request object, and it may race with a thread dispatch to
the HTTP/2 machinery that will handle the request.
2016-05-16 15:01:08 +02:00
Simone Bordet 922319c3a3 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-12 19:30:50 +02:00
Simone Bordet 242b6b5f66 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-05-12 18:59:40 +02:00
Simone Bordet 2a4cbdd111 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-12 00:22:31 +02:00
Simone Bordet 016fc6569f Fixes #558 - HTTP/2 server hangs when thread pool is low on threads.
Modified ExecuteProduceConsume to test for Rejectable tasks when
trying to execute a task in low threads mode, and if so, reject them
immediately.
2016-05-12 00:13:35 +02:00
Simone Bordet d8961139f3 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-11 13:57:08 +02:00
Simone Bordet 1fc40864e1 Issue #558 (HTTP/2 server hangs when thread pool is low on threads).
Verify that rejecting tasks avoids hanging the server when in low
threads mode.
2016-05-11 13:05:16 +02:00
Simone Bordet 8ac23d187a Added tests to verify input data consumption.
Verify that input data is consumed at the end of a request handling,
either when input is not read and when an exception is thrown,
to make sure that the session flow control is not stalled.
2016-05-11 13:05:16 +02:00
Simone Bordet 19c63703ea Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-07 14:50:56 +02:00
Simone Bordet c14833a7f1 Fixes #552 (Improve HTTP/2 idle timeout handling)
Made sure that the stream idle timeout is reset for every stream read
and write.
Made sure that both the stream and the session idle timeouta are reset
for buffered data reads.
2016-05-07 14:45:34 +02:00
Greg Wilkins fb99534c73 deprecation cleanup 2016-05-05 12:03:42 +10:00
Simone Bordet a37fdcd0e2 Fixes #514 - Allow ExecutionStrategy to be configurable.
Introduced setters and constructor parameters to components that use
ExecutionStrategy.
2016-04-14 12:28:52 +02:00
Simone Bordet 6827c5b045 Fixes #514 - Allow ExecutionStrategy to be configurable.
Introduced setters and constructor parameters to components that use
ExecutionStrategy.
2016-04-14 12:20:31 +02:00
Joakim Erdfelt 6fb338e50d Updating to version 9.3.9-SNAPSHOT 2016-04-11 16:20:50 -07:00
Joakim Erdfelt bb4f3c4882 Updating to version 9.3.9.M1 2016-04-11 15:35:22 -07:00
Simone Bordet e2f252f817 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-11 19:39:04 +02:00
Simone Bordet f0a1ccf4d3 Fixes #504 - HTTP/2 client transport cannot send request after idle timeout.
Made sure that the idle timeout mechanism notifies the destination
that the connection will close.

Also reviewed the close protocol to be: notify destination, then abort,
then close. In this way, HTTP/2 can send RST_STREAM before the
connection is closed.
2016-04-11 19:15:17 +02:00
Simone Bordet abf0307e5e Merged branch 'jetty-9.3.x' into 'master'. 2016-04-11 12:56:09 +02:00
Simone Bordet 5c3e068cb3 Fixes #481 - Event response.success notified without waiting for content callback for HTTP/2 transport.
Improved fix, notifying the response.success event using a
CompletableCallback to avoid that HttpReceiver.responseContent()
fails the update from ResponseState.TRANSIENT.
2016-04-11 12:55:37 +02:00
Simone Bordet 5aef3ba3e4 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-04 15:41:04 +02:00
Simone Bordet 5c147288ef Fixes #481 - Event response.success notified without waiting for content callback for HTTP/2 transport.
Fixed by notifying the response.success event only when the callback
is succeeded.
2016-04-04 15:40:25 +02:00
Simone Bordet 68a465d7a3 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 19:50:26 +02:00
Simone Bordet 4f68d44a50 Fixes #477 - HTTP/2 client transport must not send absolute-form :path pseudo-header.
Reducing the target to a path if it is in absolute-form.
2016-04-01 19:16:52 +02:00
Simone Bordet cdcde53c6b Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 14:44:50 +02:00
Simone Bordet ce04cadb79 Fixes #233 - Add message to idle TimeoutException. 2016-04-01 14:44:26 +02:00
Greg Wilkins acfa1268bc Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-03-24 12:58:06 +11:00
Greg Wilkins 8b228073e3 Issue #448 - RFC2616 Compliance Mode should track and report RFC7230 violations
Efficiency improvements
2016-03-24 11:37:39 +11:00
Simone Bordet 5302d1972c Merged branch 'jetty-9.3.x' into 'master'. 2016-03-18 10:49:48 +01:00
Simone Bordet 0e0edbb6db Fixes #441 (Simplify direct HTTP/2 over TLS HttpClient usage)
Added useALPN property to HttpClientTransportOverHTTP2 to disable
usage of ALPN and therefore allow direct HTTP/2 over TLS.
2016-03-18 10:49:03 +01:00
Simone Bordet 966cc2dcba Merged branch 'jetty-9.3.x' into 'master'. 2016-03-16 22:14:31 +01:00
Simone Bordet 18aeca6567 Fixes #242 (Expose HTTP/2 LastStream error) 2016-03-16 22:14:09 +01:00
Joakim Erdfelt 3624339ec6 Merge branch 'jetty-9.3.x' 2016-03-16 10:29:29 -07:00
Joakim Erdfelt 13fde643ed Merge branch 'release-9.3.8' into jetty-9.3.x 2016-03-16 10:03:29 -07:00
Greg Wilkins 1c5a1fc6a2 Issue #431
Suppress stack traces from unit tests
2016-03-16 18:19:40 +11:00
Joakim Erdfelt dcfa0b8910 Merge branch 'jetty-9.3.x' 2016-03-15 07:49:28 -07:00
Simone Bordet 26f8deddf7 Introduced Callback.Nested.
Refactored code that was using nested callbacks and removed
unnecessary overrides now that we have default methods.
2016-03-15 15:24:44 +01:00
Joakim Erdfelt c68d3b1d8d Updating to version 9.3.9-SNAPSHOT 2016-03-14 09:07:52 -07:00
Joakim Erdfelt 1f3b3f31f4 Updating to version 9.3.8.v20160314 2016-03-14 08:30:20 -07:00
Simone Bordet 87ea5ac039 Fixed tests. 2016-03-08 11:55:19 +01:00
Simone Bordet d4cd34d2ba Merged branch 'jetty-9.3.x' into 'master'. 2016-03-07 17:01:20 +01:00
Simone Bordet 8af356bc0d Issue #305 (NPE when notifying the session listener if the channel is closed before a session has been opened)
Added guard against NPE. It was needed since the connection may not
be present if the connect operation failed.
2016-03-07 17:00:52 +01:00
Simone Bordet 13f267bf8a Merged branch 'jetty-9.3.x' into 'master'. 2016-03-07 16:11:41 +01:00
Simone Bordet 6311c03dcc Merged pull request #396. 2016-03-07 10:46:22 +01:00
Greg Wilkins d1fc5eb67d Revert "Issue #346 HttpParser RFC2616 Compliance mode"
This reverts commit 58e5a54ab6.
RFC7430 allows empty header values
2016-03-05 11:03:32 +01:00
Greg Wilkins 58e5a54ab6 Issue #346 HttpParser RFC2616 Compliance mode
Ignore headers without values.
2016-03-05 11:03:11 +01:00
Jinho Shin 3facfb6066 Add a overridable method 'onClose' in HttpClientTransportOverHTTP2.
- able to look GoAwayFrame through 'onClose' method.

Signed-off-by: Jinho Shin <drdoteam@gmail.com>
2016-03-05 12:54:14 +09:00
Simone Bordet bd62320285 Issue #360 (Improve HTTP/2 stream interleaving)
Fixed by making the interleave quantum be the frame size rather than
the flow control window size.

Reworked HTTP2Flusher.process() to be simpler and properly
interleave frames.
2016-02-29 18:45:30 +01:00
Simone Bordet 2c11372bc4 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-29 17:17:09 +01:00
Simone Bordet cec3694355 Consistently using BufferUtil, especially clearToFill() and
flipToFlush().
2016-02-29 16:31:38 +01:00
Simone Bordet b8fcc5112f Issue #372 (Data race in HttpReceiverOverHTTP2)
Fixed implementations of onData() to properly complete the callback
and to copy the data if they use it asynchronously.
2016-02-29 14:39:27 +01:00
Simone Bordet aa6de825b7 Issue #372 (Data race in HttpReceiverOverHTTP2)
Fixed by copying the buffer passed to onData().
2016-02-29 14:02:17 +01:00
Simone Bordet 65b11654c5 Improved logging. 2016-02-29 11:56:49 +01:00
Simone Bordet bb08b65d15 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-29 11:33:25 +01:00
Simone Bordet aadfae936c Issue #366 (Avoid HTTP2Flusher reentrancy).
Made HTTP2Flusher termination to be atomic and non-reentrant.
2016-02-29 11:32:39 +01:00
Simone Bordet 51009208d4 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-19 13:23:34 +01:00
Greg Wilkins 55eb54799f Issue #346 HttpParser RFC2616 Compliance mode
Added HttpParser.Compliance field to HttpConnectionFactory
2016-02-19 11:41:07 +01:00
Simone Bordet 48c4e08b94 Issue #347 (Avoid sending request using a connection that is idle timing out).
Fixed by improving the guard with a timestamp, and checking that the
time elapsed from the last timestamp is enough to prove it is a real
idle timeout.
2016-02-19 11:36:06 +01:00
Simone Bordet 1cce6fd69f Improved logging. 2016-02-19 11:36:06 +01:00
Simone Bordet e91d93b85c Merged branch 'jetty-9.3.x' into 'master'. 2016-02-15 20:56:01 +01:00
Simone Bordet 26b6c848f3 Issue #80 (Spin loop in case of HTTP/2 prefaces without H2C).
Fixed by changing the state of the parser before calling the parser
handler callbacks, and by closing the parser if the upgrade to HTTP/2
is not successful.
2016-02-15 20:50:22 +01:00