Commit Graph

983 Commits

Author SHA1 Message Date
Joakim Erdfelt aa1c656c31 Updating to version 9.4.17.v20190418 2019-04-18 14:44:28 -05:00
Joakim Erdfelt 5882d63ba7 Updating to version 9.3.28-SNAPSHOT 2019-04-18 13:54:17 -05:00
Joakim Erdfelt d3e249f869 Updating to version 9.3.27.v20190418 2019-04-18 13:10:03 -05:00
Joakim Erdfelt 79537a5f51 Updating to version 9.4.17-SNAPSHOT 2019-04-11 11:00:24 -05:00
Joakim Erdfelt e0aa4ae4c0 Updating to version 9.4.16.v20190411 2019-04-11 10:01:26 -05:00
Joakim Erdfelt c70034766e Updating to version 9.3.27-SNAPSHOT 2019-04-03 18:46:31 -05:00
Joakim Erdfelt dae476e369 Updating to version 9.3.26.v20190403 2019-04-03 18:16:32 -05:00
Joakim Erdfelt 2ccde9772b Undoing bad release-9.3.26 2019-04-03 18:11:16 -05:00
Greg Wilkins 9f4b3542cb Updating to version 9.3.27-SNAPSHOT 2019-04-03 17:32:08 +11:00
Greg Wilkins 7ec6d2fb32 Updating to version 9.3.26.v20190403 2019-04-03 13:06:51 +11:00
Simone Bordet 6fb243ff6c Issue #3464 - Split SslContextFactory into Client and Server
Introduced SslContextFactory subclasses Client and Server.
Replaced all usages of SslContextFactory with either Client or Server
as required.

Refactored configuration checking so that warnings are not emitted
when non necessary.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-03-21 14:42:42 +01:00
Joakim Erdfelt 9cdb59d4d7 Updating to version 9.4.16-SNAPSHOT 2019-02-15 13:35:15 -05:00
Joakim Erdfelt eb70b24016 Updating to version 9.4.15.v20190215 2019-02-15 11:53:00 -05:00
Simone Bordet 88408375ab Issue #3049 - Warn on common SslContextFactory problematic configurations.
Updating SslContextFactory configuration for tests, since
the change in the default endPointIdentificationAlgorithm
makes the test failing as the certificates are not valid
for the local host, which is different depending on where
the tests are run (locally, jenkins).

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-01-31 15:31:35 +01:00
Olivier Lamy 9b7afd8a03
Happy new year!! (#3232)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-01-01 11:52:16 +10:00
Simone Bordet 9aeebb1368 Fixes #3212 - java.io.IOException: 1/unexpected_rst_stream_frame.
Client and server need to to treat an incoming RST_STREAM frame
differently, testing whether the stream is closed for respectively
local and remote streams.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-12-21 13:27:14 +01:00
Greg Wilkins 89e1dd033a
Jetty 9.4.x 3117 retainable byte buffer (#3118)
* Move RetainableByteBuffer to jetty-io=
use RetainableByteBuffer
use RetainableByteBuffer - changes from review.
Reviewed and applied small changes.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-22 11:31:05 +01:00
Joakim Erdfelt 29fd18e046 Updating to version 9.4.15-SNAPSHOT 2018-11-14 16:42:40 -06:00
Joakim Erdfelt c4550056e7 Updating to version 9.4.14.v20181114 2018-11-14 15:19:10 -06:00
Joakim Erdfelt a903017f5f Updating to version 9.4.14-SNAPSHOT 2018-11-11 21:06:50 -06:00
Joakim Erdfelt 49123a3313 Updating to version 9.4.13.v20181111 2018-11-11 20:02:42 -06:00
Simone Bordet f814354bb5 Issue #3085 - Restore Dump methods for backwards compatibility reasons.
Restored removed methods to maintain backwards compatibility.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-11-09 17:47:46 +01:00
Greg Wilkins 67cef441b2
Support direct buffers in hpack (#3058)
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-11-05 14:05:02 +01:00
Simone Bordet b70323d55f Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-2796-http2_max_concurrent_streams'. 2018-10-29 19:05:35 +01:00
Simone Bordet 0236f4064a Issue #2998 - Cleanup the dump implementation.
Fixed dump() in HTTP2Session.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-22 22:47:54 +02:00
Greg Wilkins 15e1c73f9c
Cleanup the dump implementation (#2998)
* Cleanup the dump implementation
* improved the clarity of utility methods for dump and updated most dump methods
* fixed upgrade filter dump
* Improved dump after review
* Moved dumpObjects to Dumpable
* implemented dumpBeans with dumpObjects
* less verbose dump
* Dump streams
* fixed dump test

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-22 11:53:59 +11:00
Simone Bordet 276fa7e86b Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-2796-http2_max_concurrent_streams', 2018-10-18 16:56:13 +02:00
Simone Bordet 907e7afc76 Issue #2796 - Max local stream count exceeded when request fails.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-18 16:55:33 +02:00
Greg Wilkins 5c8d3f041b Cleanup to avoid duplication method (noticed while reviewing #2977) 2018-10-16 14:30:09 +11:00
Simone Bordet ec2b5b1810 Issue #2796 - Max local stream count exceeded when request fails.
Bound release of the channel to stream close event.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-11 15:56:47 +02:00
Simone Bordet 34511670d1 Improved HTTP2Stream.toString().
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-10 10:27:02 +02:00
Simone Bordet 6b6036a21c Issue #2771 - h2spec test failures.
Fixed Stream.isRemotelyClosed() to imply CLOSING as well.
Fixed logging.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-09 23:21:00 +02:00
Simone Bordet cec84cf1bf Issue #2796 - Max local stream count exceeded when request fails.
Reviewed other possible places where max local stream count may
overflow.

Fixed handling of HTTP/2 stream idle timeouts.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-10-09 15:53:53 +02:00
Greg Wilkins 4949b80397 Issue #2815 HPack Opaque Bytes
HPack as specified allows for values to be opaque bytes, even though HTTP only allows ISO-8859-1 within a header.
This updates HPack, so that strings are converted to UTF-8 and then encoded as bytes iff non ISO-8859-1 characters are discovered.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-09-13 15:11:45 +10:00
Joakim Erdfelt a3f1592c50 Issue #2431 - Upgrade to Junit 5 (#2436)
+ Changes needed for new Junit 5
+ Migrating from Vintage junit API to Jupiter junit API
+ Relies on SNAPSHOT jetty-test-helper
  - this will be a formal release once this issue has been
    resolved satisfactory
+ Have jenkins always pull latest SNAPSHOT for each build
+ Adding jetty.snapshots repository
+ Using surefire 2.22.0 per advice from junit
+ Ensuring <reuseForks>true</reuseForks> to work around issue junit-team/junit5#801
+ Disabling <forkMode>always</forkMode> in maven-surefire-plugin
  due to bug https://github.com/junit-team/junit5/issues/801
+ OSGi tests must remain at vintage due to PaxExam
+ Moving from vintage TestingDir to jupiter WorkDir
+ Fixing imports to use jupiter, not vintage
+ Migrating vintage ExpectedException to jupiter assertThrows
+ Migrating vintage TestName to jupiter TestInfo
+ Migrating @RunWith(Parameterized.class)
  to @ParameterizedTest with Argument Sources
+ Migrating assertTrue(val.contains(needle))
  to assertThat(val, containsString(needle))
+ Aligning junit versions per recommendations from @sormuras
+ Adjusting parameter order change for assertEquals()
+ Test LifeCycle Annotation Migration

junit 4      | junit 5 / jupiter
------------ | -----------
@Before      | @BeforeEach
@After       | @AfterEach
@BeforeClass | @BeforeAll
@AfterClass  | @AfterAll

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-09-05 10:07:17 +10:00
Jesse McConnell 863a19bccf
Updating to version 9.3.26-SNAPSHOT 2018-09-04 17:23:31 -05:00
Jesse McConnell 3ce520221d
Updating to version 9.3.25.v20180904 2018-09-04 16:08:21 -05:00
Simone Bordet 831b684300 Issue #2871 - Server reads -1 after client resets HTTP/2 stream.
Backported to jetty-9.3.x branch.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-31 19:07:57 +02:00
Jesse McConnell dcf6a8fa9f
Updating to version 9.4.13-SNAPSHOT 2018-08-30 10:48:22 -05:00
Jesse McConnell 2720868475
Updating to version 9.4.12.v20180830 2018-08-30 08:56:44 -05:00
Simone Bordet eb87415ed6 Issue #2871 - Server reads -1 after client resets HTTP/2 stream.
HttpInput.consume() now checks if the state is already failed,
and if so it does not change it when consuming the input.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-30 11:47:50 +02:00
Simone Bordet 0f6ae93ff8 Issue #2828 - AbstractHTTP2ServerConnectionFactory concurrent connect low performance.
Fixed test failure.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-22 21:35:58 +02:00
Simone Bordet 6015ad5ead
Merge pull request #2831 from eclipse/jetty-9.4.x-2828-http2_connection_listener_contention
Fixes #2828 - AbstractHTTP2ServerConnectionFactory concurrent connect low performance.
2018-08-22 16:21:17 +02:00
Simone Bordet 97a2f3bdf2 Fixes #2828 - AbstractHTTP2ServerConnectionFactory concurrent connect low performance.
Improved JMX for the HTTP2SessionContainer.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-21 21:55:29 +02:00
Simone Bordet d8e0f8df12 Issue #2832 - Wrong initialization of HTTP/2 UnknownBodyParser.
Fixed parser initialization.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-19 18:04:47 +02:00
Simone Bordet 467bbbe1f9 Issue #2722 - Improve configurability for SETTINGS frames.
Added one more test.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-19 16:29:30 +02:00
Simone Bordet 1f785eed28 Fixes #2832 - Wrong initialization of HTTP/2 UnknownBodyParser.
Now UnknownBodyParser is correctly initialized in Parser.init().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-19 16:28:15 +02:00
Simone Bordet d3e75c5936 Fixes #2828 - AbstractHTTP2ServerConnectionFactory concurrent connect low performance.
Now HTTP/2 sessions are not added to the Jetty component tree,
but rather just held by HTTP2SessionContainer that is added to
the Jetty container tree at startup.

HTTP2SessionContainer uses a concurrent Set to hold HTTP/2 sessions
to have good add/remove performance.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-19 14:54:14 +02:00
Simone Bordet 03af18ca82
Merge pull request #2797 from eclipse/jetty-9.4.x-2796-max_concurrent_streams_local_timeout
Fixes #2796 - Max local stream count exceeded when request fails.
2018-08-14 16:21:03 +02:00
Simone Bordet 1e439535c1 Cosmetics.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-14 15:18:49 +02:00
Simone Bordet 35541d0c1e Fixes #2796 - Max local stream count exceeded when request fails.
Now releasing the connection only after the stream has been reset, so
we are sure that the stream has been closed and its count decremented.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-13 11:44:57 +02:00
Kazuhiro Sera 96218e8bc4 Fix typos detected by github.com/client9/misspell
Signed-off-by: Kazuhiro Sera <seratch@gmail.com>
2018-08-10 23:52:16 +09:00
Olivier Lamy c8fe66dd3a
#2778 upgrade h2spec-maven-plugin to 0.4 (#2779)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-08-07 21:17:07 +10:00
Simone Bordet 8c296e7d52 Issue #2757 - Possible double release of HTTP/2 ByteBuffers.
Clarified the NetworkBuffer API semantic so that the code is now simpler.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-08-01 18:24:42 +02:00
Simone Bordet 9a22dd820a Issue #2679 - h2spec compliance.
Integrated h2spec execution in the Maven build.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-21 15:55:43 +02:00
Simone Bordet 5e9a45eca1
Merge pull request #2742 from lachlan-roberts/jetty-9.4.x-2679-h2spec_compliance
Issue #2679 - h2spec compliance Huffman encoding
2018-07-21 14:16:48 +02:00
lachan-roberts b5e607068f Issue #2679 - HTTP/2 Spec Compliance
now handling padding over 7 bits with Exception
throwing CompressionExceptions instead of StreamExceptions
fixed issue with non terminal encoded strings

Signed-off-by: lachan-roberts <lachlan@webtide.com>
2018-07-21 22:10:12 +10:00
Simone Bordet 4b0becbbe0 Issue #2679 - h2spec compliance.
Fixed content-length compliance.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-21 12:52:44 +02:00
Simone Bordet 4ace2e4d8d Issue #2679 - h2spec compliance.
Integrated HPACK modifications to comply with the specification.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-21 11:42:31 +02:00
Lachlan Roberts da213d5876 Issue #2679 - HTTP/2 Spec Compliance
Now throwing exceptions for incorrect padding and EOS in content in Huffman.decode()

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-07-21 11:32:34 +10:00
Lachlan Roberts a72fe7e3c7 Issue #2679 - HTTP/2 Spec Compliance
Added tests for the problems with the Huffman encoding

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-07-20 22:40:05 +10:00
Greg Wilkins 0da9225056 dynamic table resize
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-19 13:49:40 +02:00
Greg Wilkins 971ca22367 8.1.2.3
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-19 12:50:54 +02:00
Greg Wilkins fa46013cf7 8.1.2.2
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-19 12:24:24 +02:00
Simone Bordet 0f4a1744f0 Merged branch 'jetty-9.4.x-2695-hpack-compliance' into 'jetty-9.4.x-2679-h2spec_compliance'. 2018-07-19 11:17:49 +02:00
Simone Bordet 4a65b44f6e Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-2679-h2spec_compliance'. 2018-07-19 11:16:01 +02:00
Greg Wilkins 98ea112fd3 wip
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-18 12:26:55 +02:00
Simone Bordet 9f5a7d33b0 Fixes #2730 - Limit concurrent HTTP/2 pushed resources.
Using the same mechanism we use to limit max concurrent streams.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-18 12:15:14 +02:00
Greg Wilkins 42844f2c5f WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-18 11:08:05 +02:00
Greg Wilkins 7037e86d3b Merge branch 'jetty-9.4.x' into jetty-9.4.x-2695-hpack-compliance 2018-07-18 10:57:39 +02:00
Simone Bordet 9eca404da2
Fixes #2722 - Improve configurability for SETTINGS frames. (#2723)
* Fixes #2722 - Improve configurability for SETTINGS frames.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-18 10:07:14 +02:00
Greg Wilkins a890dbfc01 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-2695-hpack-compliance 2018-07-17 17:49:19 +02:00
Simone Bordet 980282ef9b
Fixes #2672 - Max local stream count exceeded for Http2 Client (#2693)
* Fixes #2672 - Max local stream count exceeded for HttpClient with HTTP/2 transport.

Now waiting for the server preface to arrive to the client before making
the connection available to the ConnectionPool.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-16 17:13:47 +02:00
Greg Wilkins 0ad4b4483b WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-15 19:22:31 +02:00
Greg Wilkins a9819ebb01 review fixes
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-12 11:50:53 +02:00
Joakim Erdfelt 0b69f00665 Updating to version 9.4.12-SNAPSHOT 2018-07-11 17:32:16 -05:00
Joakim Erdfelt 260596dd10 Updating to version 9.4.12.RC0 2018-07-11 16:30:55 -05:00
Simone Bordet 0ec8f312f6 Issue #2679 - HTTP/2 Spec Compliance.
Fixed stream ID validation and stream state handling.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-10 11:06:23 +02:00
Simone Bordet d35fa69e1f Issue #2679 - HTTP/2 Spec Compliance.
Fixed handling of CONTINUATION frames.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-10 11:06:23 +02:00
Simone Bordet 7aa7dceb89 Issue #2679 - HTTP/2 Spec Compliance.
Fixed sanity checks for the WINDOW_UPDATE delta.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-10 11:06:23 +02:00
Simone Bordet 47506250c8 Issue #2679 - HTTP/2 Spec Compliance.
Fixed sanity checks for SETTINGS values.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-10 11:06:23 +02:00
Simone Bordet d06d5f5a71 Issue #2679 - HTTP/2 Spec Compliance.
Fixed PRIORITY self-dependency.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-10 11:06:23 +02:00
Simone Bordet 5836c50a20 Issue #2679 - HTTP/2 Spec Compliance.
Fixed max frame length handling.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-10 11:06:23 +02:00
Simone Bordet d8fcd874ee Issue #2679 - HTTP/2 Spec Compliance.
Fixed unknown frame type behavior to follow the spec, i.e. ignore it.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-10 11:06:23 +02:00
Greg Wilkins 44801d8ff3 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 18:08:36 +00:00
Greg Wilkins 9fd80e8524 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 15:17:39 +00:00
Greg Wilkins 10ec53319a WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 14:56:42 +00:00
Greg Wilkins b42017b942 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 14:44:38 +00:00
Simone Bordet 635cf4d374 Issue #2349 - Review HTTP/2 max streams enforcement.
Restored code that was deleted by mistake.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-07-04 11:12:34 +02:00
Simone Bordet 253c637742
Fixes #2663 - Guard Throwable.addSuppressed() calls. (#2665)
* Fixes #2663 - Guard Throwable.addSuppressed() calls.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-06-14 15:21:44 +02:00
Greg Wilkins 346879f2a5
Merge pull request #2664 from mperktold/jetty-9.4.x
Issue #2662 Unnecessary boxing conversions
2018-06-13 22:52:27 +02:00
Matthias Perktold f901efc413 Issue #2662 - Unnecessary boxing conversions
Signed-off-by: Matthias Perktold <tias251@gmail.com>
2018-06-13 16:20:12 +02:00
Joakim Erdfelt e4bfe00dce Updating to version 9.4.12-SNAPSHOT 2018-06-05 14:18:37 -05:00
Joakim Erdfelt d5fc0523cf Updating to version 9.4.11.v20180605 2018-06-05 13:23:02 -05:00
Joakim Erdfelt 5eefa90e05 Updating to version 9.3.25-SNAPSHOT 2018-06-05 13:13:07 -05:00
Joakim Erdfelt 84205aa28f Updating to version 9.3.24.v20180605 2018-06-05 12:11:03 -05:00
Joakim Erdfelt f0ff571c98 Reverting version to 9.3.24-SNAPSHOT 2018-06-05 12:06:58 -05:00
Joakim Erdfelt 13640c297c Bumping version to 9.3.25-SNAPSHOT 2018-06-05 11:58:37 -05:00
Simone Bordet e5554831e0
Fixes #2616 - Trailers preventing client from processing all the data. (#2623)
* Fixes #2616 - Trailers preventing client from processing all the data.

Trailer handling was erroneously firing the response success event
before all the response content events happened.

Now the trailer handling uses a poison-pill DATA frame to make sure that
all response content events happen before the response success event.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-06-05 18:55:55 +02:00
Greg Wilkins 4d09806d4e
Issue #2571 HPACK table overflow (#2589)
When an entry that is too large for the dynamic table is added, the entire table should be evicted as per the RFC.  Previously we were throwing a 431 Bad Message.   This will require that the OP should retest #1134.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-30 09:22:00 +02:00
Greg Wilkins 953611fb72 reverted inadvertant commit with #2585
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-29 17:31:56 +02:00
Greg Wilkins 436c00b0af Fixed #2585
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-29 15:48:53 +02:00
Simone Bordet 1fc1ac89e2 Fixes #2545 - Slow HTTP2 per-stream download performance.
Moved the initialization of the SETTINGS frame to a common place
shared by both the low-level HTTP2Client and the higher level
HttpClientTransportOverHTTP2.

Did the same with HTTP2 server ConnectionFactories.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-18 09:06:49 +02:00
Simone Bordet 16b7359ae5 Fixes #2548 - Possible deadlock failing HTTP/2 stream creation.
Now failing the callback outside of the synchronized block.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-16 22:18:47 +02:00
Simone Bordet 01f7aecc4e Fixes #2546 - Incorrect parsing of PROXY protocol v2.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-16 21:33:22 +02:00
Simone Bordet 744f9054b3 Fixes #2547 - Review usages of ServerSocket[Channel].accept().
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-16 18:40:10 +02:00
Simone Bordet 0374d40cae
Issue #2439 - Remove HTTP/2 data copy. (#2444)
* Issue #2439 - Remove HTTP/2 data copy.

Implemented reference counting for the network buffer, with the
semantic that calling succeeded() on callbacks decrements the
reference count.
Introduced interface Retainable, used by the client when notifying
multiple application content listeners.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-09 09:39:57 +02:00
Joakim Erdfelt 1732ffca51 Updating to version 9.4.11-SNAPSHOT 2018-05-03 11:48:05 -05:00
Joakim Erdfelt daa59876e6 Updating to version 9.4.10.v20180503 2018-05-03 10:55:19 -05:00
Simone Bordet c4e1e8f454 Moved method onFlushed() to ISession.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-04-25 15:11:24 +02:00
Simone Bordet d7dac7ea1d Issue #2474 - HTTP/2 client not handling invalid servers correctly.
Fixed by start reading from the server after the session
promise has been notified, which may send the first request.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-04-23 20:04:25 +02:00
Simone Bordet fa5a1d3be4 Fixes #2453 - RawHTTP2ProxyTest.testRawHTTP2Proxy failure on CI.
onData() implementations must copy the data
bytes if they do not consume them locally.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-04-20 18:15:53 +02:00
Simone Bordet 50c44f2297 Fixes #2454 - Avoid sending empty DATA frame in case of HTTP/2 trailers.
Updated the logic to avoid sending an empty data frame
when only sending the trailers in HttpTransportOverHTTP2.send().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-04-18 14:19:58 +02:00
Jan Bartel 0e88849a68
Issue #2164 Make osgi.serviceloader mostly optional (#2408)
Signed-off-by: Jan Bartel <janb@webtide.com>
2018-04-18 14:48:53 +10:00
Simone Bordet 6224e75862
Issue #2366 - Review HTTP/2 interleaving. (#2379)
* Fixes #2366 - Review HTTP/2 interleaving.

Now using a fairer algorithm that performs multiple generation passes
but without generating all frames for the current entries - it stops
after N passes over all the entries when the number of bytes to
write is large enough.

Using HttpConfiguration.outputBufferSize as the writeThreshold on
the server and a default 32 KiB on the client to stop the generation
after a pass over all the entries.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-04-13 11:50:17 +02:00
Simone Bordet c14f7efc95 Fixes spurious failures of FlowControlStrategyTest.testServerFlowControlOneBigWrite().
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-04-10 19:01:15 +02:00
Simone Bordet 06454f6409 Fixes #2420 - Simplify HttpTransportOverHTTP2.
Removed usage of ternary expressions in favor of if/else statements
to improve readability of the logic for the send() method.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-04-07 12:25:39 +02:00
Jan Bartel 16e625adde
Issue #2109 remove warnings for unused imports and exports (#2390)
Signed-off-by: Jan Bartel <janb@webtide.com>
2018-04-04 12:06:43 +10:00
Simone Bordet 072442a5e5 Fixes #2225 - Test failure: StreamResetTest.testBlockingWriteAfterStreamReceivingReset.
The problem was caused by the reset arriving to the server
_before_ the commit callback was invoked.
Now waiting for the commit callback to complete before
sending the reset to the server.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-29 12:31:44 +02:00
Simone Bordet 8cf15659be Issue #2349 - Review HTTP/2 max streams enforcement. (#2389)
* Issue #2349 - Review HTTP/2 max streams enforcement.

Changed the max concurrent remote streams enforcement algorithm.
It is now based on the stream count and the closing stream count,
updated atomically in a state machine in HTTP2Stream.

Fixed Javadoc.

Fixed close() method.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-28 13:10:11 +11:00
Joakim Erdfelt a74a328024 Merge branch 'release-9.4.9' into jetty-9.4.x 2018-03-21 16:33:56 -05:00
Simone Bordet 8251ed5a12
Fixes #2311 - TimeoutException when server sends unexpected content. (#2324)
Now exiting the parse loop when the response is complete; if there
are bytes remaining in the buffer, then it's cleared out.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-21 16:25:18 +01:00
Joakim Erdfelt c3cc138a3b Updating to version 9.4.10-SNAPSHOT 2018-03-20 08:25:59 -05:00
Joakim Erdfelt 1f8159b1e4 Updating to version 9.4.9.v20180320 2018-03-20 07:18:24 -05:00
WalkerWatch 534b8ea38b Add edit warning for .mod files. Resolves #173 2018-03-15 13:23:42 -04:00
Simone Bordet b00bb2adb2 Reverted logging level back to INFO.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-15 16:07:51 +01:00
Simone Bordet 8b391a88dd Fixes #2318 - HttpParser.Listener.onBadMessage() should take BadMessageException.
Changed the signature of HttpParser.Listener.onBadMessage()
to take a BadMessageException and updated dependent code.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-12 19:51:57 +01:00
Simone Bordet ff341fb420 Issue #2313 - Dump HTTP/2 channel state.
Added HTTP/2 stream age to toString().

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-12 11:30:00 +01:00
Simone Bordet 21bdb367fd Fixes #2313 - Dump HTTP/2 channel state.
Dumping also HttpChannelOverHTTP2 when dumping the HTTP2Stream.
The channel is now stored as a field in HTTP2Stream rather than
as an attribute to save the attributes map allocation.
Consequently, IStream has now getter/setter for the property
"attachment" that is used to store the channel without having
a type dependency on HttpChannel.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-10 15:11:40 +01:00
Simone Bordet 4c24c457de Fixes #2312 - HTTP/2 Connection.Listener notified after first request.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-10 15:05:02 +01:00
Simone Bordet b71cd70bf7 Fixes #2297 - HTTP/2 client transport should honor HttpClient.connectBlocking.
Introduced property connectBlocking in HTTP2Client so that it can
be forwarded by HttpClient and then used for HTTP/2 connects.

Also introduced HTTP2Client.bindAddress, again forwarded from HttpClient.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-07 11:52:28 +01:00
Greg Wilkins 74055b9837
Jetty 9.4.x 2293 pending multiplexed (#2294)
Issue #2293 Pending Multiplexed Connections

Added a AtomicBiInteger to allow both total connections and pending connections to be encoded in the
same atomic int.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-03-07 19:31:22 +11:00
Greg Wilkins bcb9fa3b32
Merge pull request #2257 from lachlan-roberts/jetty-9.4.x-2206-ReferenceEquality
Resolved errorprone ReferenceEquality warnings #2206
2018-03-07 11:11:40 +11:00
Simone Bordet 5dea9b673e Fixes #2291 - Expose HTTP/2 close reason in dumps.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-07 00:45:23 +01:00
Greg Wilkins 1713a49551 improved timing on http2 reset stream test
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-03-06 15:43:07 +11:00
Lachlan Roberts 020ebde77c found additional ReferenceEquality warnings which have been resolved
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-03-06 14:28:11 +11:00
Lachlan Roberts a639ee9275 Resolved errorprone MissingOverride warnings #2206
`@Override` was added to methods which were missing the annotation #2206

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-03-01 13:59:25 +11:00
Joakim Erdfelt a05b157c03 Updating to version 9.3.24-SNAPSHOT 2018-02-28 16:39:30 -06:00
Joakim Erdfelt 0554f8d8b4 Updating to version 9.3.23.v20180228 2018-02-28 15:45:57 -06:00
Greg Wilkins 0cb4f5629d
Jetty 9.4.x 1803 proposal 0+2 (#2199)
Merging this PR for #2199 as we currently think it is not worse than previous and the code base is definitely simpler.   While JMH has shown significant benefits for this approach, we have yet been able to demonstrate them in full scale integration tests - however that is likely due to GC and thread pool issues dominating.

A `org.eclipse.jetty.http2.PEC_MODE` System property has been added to allow the EWYK scheduling to be disabled for HTTP/2 if need be.


* Implementation of #1803 proposal 2 - EITHER dispatch type for EWYK
* made code more readable
* increase small threadpools in tests for extra reserved thread
* clean up
* minor code simplifications
* Work in progress to simplify reserved thread pool
* use a single ReservedThreadPool built into the QueuedThreadPool
* fixed javadoc
* removed more old reserved thread references
* disable EWYK for h2
* fixes from review
* use EWYK for HTTP2
* Fixed javadocs, imports and QueuedThreadPool constructors.
* fix javadoc
* EWYK avoid unnecessary pendings
* after review
* fixed merge with jetty-threadpool.xml
* alternate EWYK implementations
* added jetty copyright headers
* Simplified EWYK code after review
* fixed bad merge
* Code cleanups.
* Improved Javadocs for deprecated property "reservedThreads".
* Improved Javadocs for deprecated property "reservedThreads".
* added a system property to enable only PEC for HTTP/2

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-02-27 14:29:59 +11:00
Simone Bordet f8c45b1c6c Simplified toString().
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-02-22 15:25:32 +01:00
Simone Bordet c7c85a9a01 Removed unused test class.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-02-22 15:25:32 +01:00
Greg Wilkins ec51926622 reduce fragility of tests
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-02-19 19:22:32 +11:00
Simone Bordet 8a6b33a3e8 Fixes #2190 - HTTP/2 close and GOAWAY behavior.
Now the receiver of a GOAWAY also replies with a GOAWAY
before closing the connection.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-02-09 10:55:39 +01:00
Greg Wilkins ab5fc29cca Jetty 9.4.x 1803 proposal 0 - single ReservedThreadExecutor (#2119)
Issue #1803 - Review usage of scheduling strategies

Use a single ReservedThreadExecutor built into the QueuedThreadPool
via new interface TryExecutor.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-02-08 11:08:48 +01:00
Simone Bordet 56a2a00812 Overridden toString() for FailureTask to print the failure.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-02-07 15:40:30 +01:00
Greg Wilkins 7138dc3828
Jetty 9.4.x #1918 scalable scheduler3 (#2101)
* Scalable scheduler changes for #1918
* Added HttpChannel.destroy to destroy CyclicTimer
* fixed rebase with HttpConnectionOverFCGI
* renamed to acquire
* Destroying the HttpChannel consistently in all transports.
* updated headers
* cleanup after final review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-01-10 16:56:41 +01:00
Joakim Erdfelt 21365234f8 Issue #2108 - Updating license headers for year 2018 2018-01-09 09:44:41 -06:00
Joakim Erdfelt 41ed9f29f4 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2018-01-09 09:37:25 -06:00
Joakim Erdfelt fa4c7b0ca9 Issue #2108 - Updating license headers for year 2018 2018-01-09 08:39:37 -06:00