Commit Graph

1075 Commits

Author SHA1 Message Date
Joakim Erdfelt 0d9605823a
Restoring unicode testcase
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-01-14 16:05:55 -06:00
Joakim Erdfelt 8c65309963
Addressing Checkstyle violations in src/test/java
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-01-14 12:33:34 -06:00
Simone Bordet 923ec38adf Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2020-01-07 16:51:25 +01:00
Simone Bordet e3c8546667 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2020-01-07 16:35:05 +01:00
Joakim Erdfelt f4e7e4c3db Merge branch 'release-9.4.25' into jetty-9.4.x 2020-01-03 12:49:27 -06:00
olivier lamy e1371a1c13 happy new year
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-01-02 21:54:05 +01:00
Joakim Erdfelt 8974176c4b Updating to version 9.4.26-SNAPSHOT 2019-12-20 11:30:41 -06:00
Joakim Erdfelt a9729c7e7f Updating to version 9.4.25.v20191220 2019-12-20 10:46:56 -06:00
Greg Wilkins c5acf96506
Jetty 9.4.x 4331 async close complete3 (#4409)
* Issue #4376 Async Content Complete

Added test harness to reproduce unready completing write.
Fixed test by not closing output prior to becoming READY

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

* Issue #4331 Async Write Complete

Test harness to reproduce unready when closing/completing.

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

* Issue #4331 Async Write Complete

test both PENDING and UNREADY

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

* Issue #4331 Async Write Complete

test cleanups

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

* Issue #4331 Async Close Complete

Cleanups of write

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

* WIP

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

* Issue #4331 Close Complete

Work in progress

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

* Issue #4331 Close Complete

Added async close to HttpWriter and ResponseWriter
Always use async close, with blocker if necessary.

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

* Issue #4331 Close Complete

Working async close complete!

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

* Issue #4331 Close Complete

invert test as we can now call complete when not ready!

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

* Issue #4331 Close Complete

fixed transition to ERROR state

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

* Issue #4331 Close Complete

async close after onError

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

* Issue #4331 Close Complete

minor cleanups

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

* Issue #4331 Close Complete

Fix for proxy tests

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

* Issue #4331 Close Complete

Fix write loop to handle clear of p=0,l=0 rather than p=l

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

* Issue #4331 Close Complete

Removed old close on all content mechanism
Cleanups and some more TODOs

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

* Issue #4331 Close Complete

a reworking of HttpOutput to separate out API state.

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

* Issue #4331 Close Complete

Soft close for Dispatcher
release buffer in onWriteComplete

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

* Issue #4331 Close Complete

Set _onError in onWriteComplete
NOOP callback instead of null

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

* Issue #4331 Close Complete

failure closes HttpOutput

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

* Issue #4331 Close Complete

Moved closedCallback handling to onWriteComplete

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

* Issue #4331 Close Complete

Additional test of complete during blocking write.

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

* Issue #4331 Close Complete

reimplemented blocking close to sometimes be async

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

* Issue #4331 Close Complete

ascii "art"

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

* Issue #4331 Close Complete

Code cleanup.  Use a CLOSE state rather than non null closedCallback to be clearer that it is a state.
Renamed close(Callback) to complete(Callback)
Renamed and simplified closed() to completed()

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

* Issue #4331 Close Complete

Do not dispatch
Better ascii art
improved close impl to be similar to complete

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

* Issue #4331 Close Complete

More test cases

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

* Issue #4331 Close Complete

retain execute behaviour in 9.4. review in 10.

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

* Improved javadoc and ascii art

* Improved CLOSING

Switch to CLOSING state as soon as last write is done, even if several non last channelWrites will be done.   This allows a subsequent call to close to know that nothing needs to be written and can avoid some EOF exceptions. Now onWriteComplete acts only on the passed in last parameter.

Added test for sendContent

* WIP

Aggregate within lock
pipeline test debug

* Avoid creating ignored exception when Idle or Failed.

* Try a parse without fill to avoid unconsumed input debug

* fixed pipeline size

* release buffer before callback

* turn off debug

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

* Issue #4331 Close Complete

Better javadoc
refactored onWriteComplete logic to be simpler
fixed bug with flush of last written byte

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

* Issue #4331 Close Complete

Completely reworked test harness for better coverage.

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

* Issue #4331 Close Complete

Reworked order of ifs to match logic above in onWriteComplete

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-12-19 12:17:11 +11:00
Joakim Erdfelt 0f7a3b2d91 Updating to version 9.4.25-SNAPSHOT 2019-11-20 16:08:38 -06:00
Joakim Erdfelt 363d5f2df3 Updating to version 9.4.24.v20191120 2019-11-20 15:25:01 -06:00
Joakim Erdfelt dc03431de2 Merge branch 'release-9.4.23' into jetty-9.4.x 2019-11-20 07:14:53 -06:00
Simone Bordet d44a6935ef Issue #4331 - Improve handling of HttpOutput.close() for pending writes.
Added test case that verifies the current behavior (abort the response
in case complete() is called with a pending write()).

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-11-19 17:09:04 +01:00
Joakim Erdfelt 453d41940b Updating to version 9.4.24-SNAPSHOT 2019-11-18 13:52:51 -06:00
Joakim Erdfelt abbccc65d6 Updating to version 9.4.23.v20191118 2019-11-18 13:09:44 -06:00
Simone Bordet 89a4f92411
Merge pull request #4302 from eclipse/jetty-9.4.x-4301-demand_beforecontent_not_forwarded
Fixes #4301 - Demand beforeContent is not forwarded.
2019-11-14 01:42:28 +03:00
Simone Bordet aa57463175 Fixes #4301 - Demand beforeContent is not forwarded.
Now correctly handling no demand before the content
in FCGI and HTTP2 transports.

Fixed HttpRequest to correctly forward onBeforeContent()
to wrapped listeners.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-11-12 23:33:21 +01:00
Simone Bordet ba1724ae34 Fixes #4258 - RateControl should be per-connection.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-11-12 17:46:19 +01:00
Simone Bordet f675a87623 Fixes #4258 - RateControl should be per-connection.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-11-05 23:55:38 +01:00
Joakim Erdfelt 43d95cd984 Updating to version 9.3.29-SNAPSHOT 2019-11-05 13:02:10 -06:00
Joakim Erdfelt d7dd68d6e9 Updating to version 9.3.28.v20191105 2019-11-05 11:46:40 -06:00
Simone Bordet f8449868e6 Fixes #4258 - RateControl should be per-connection.
Introduced RateControl.Factory to create instances of RateControl
for each connection.
Modified relevant XML files and added distribution test for h2.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-11-05 18:40:27 +01:00
Greg Wilkins 869c3b51ce
Issue #4265 Remove doError (#4266)
* Issue #4265 Remove doError

The doError method and the ErrorDispatchHandler class were
hang overs from when we needed to dispatch into a context to get sendError called, which would then generate the error page.

Now sendError doesn't do any generation, rather it changes state that arranges either for a minimal error page to be generated or an ERROR dispatch to a real handler/servlet to generate the error page.

Thus the ErrorDispatchHandler and doError methods can now be removed.

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

* Issue #4265 Remove doError

Moved the error page dispatching logic back to the ErrorHandler class to assist with backwards compatibility

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

* Issue #4265 Remove doError

Moved the error page dispatching logic back to the ErrorHandler class to assist with backwards compatibility

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

* Issue #4265 doError

Updates from review.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-11-05 08:45:46 +11:00
Simone Bordet 3ae9faab79 Fixes #4251 - Http 2.0 clients cannot upgrade protocol in 9.4.22 release.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-31 22:24:31 +01:00
Simone Bordet 4f19e6b638 Fixes #4251 - Http 2.0 clients cannot upgrade protocol in 9.4.22 release.
Fixed HTTP2-Settings header parsing.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-31 15:56:24 +01:00
Joakim Erdfelt 1ed13b6b30 Updating to version 9.4.23-SNAPSHOT 2019-10-22 09:19:41 -05:00
Joakim Erdfelt b1e6b55512 Updating to version 9.4.22.v20191022 2019-10-22 08:20:50 -05:00
Simone Bordet 83185334e0
Merge pull request #4182 from eclipse/jetty-9.4.x-4142-RateControl
Issue #4142 - module config for http2 maxSettingsKeys and RateControl
2019-10-15 13:00:26 +02:00
Lachlan Roberts 5329ecf5be Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 21:56:54 +11:00
Lachlan Roberts 4f640387f2 Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 21:09:01 +11:00
Lachlan Roberts 709e05a19f Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 19:08:45 +11:00
Lachlan Roberts 5ff79b0bf1 Issue #4142 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-15 11:23:53 +11:00
Lachlan Roberts a96fb176f6 Issue #4142 - module config for http2 maxSettingsKeys and RateControl
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-11 11:24:48 +11:00
Simone Bordet cd57af4caf
Merge pull request #4116 from eclipse/jetty-9.4.x-4115-drop_http2_pseudo_headers
Fixes #4115 - Drop HTTP/2 pseudo headers.
2019-10-10 12:15:58 +02:00
Simone Bordet 687873cb7b Issue #4115 - Drop HTTP/2 pseudo headers.
Fixed NPE if the method was missing.
Renamed lowCase -> lowerCase.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-10 11:11:36 +02:00
Simone Bordet 6acc9f7be5 Issue #4115 - Drop HTTP/2 pseudo headers.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-09 21:01:30 +02:00
Simone Bordet 3be178c966 Merged 'jetty-9.4.x' into 'jetty-9.4.x-2429-httpclient_backpressure'. 2019-10-03 13:17:39 +02:00
Simone Bordet 609c144ae0 Fixes #4115 - Drop HTTP/2 pseudo headers.
Invalid HTTP/2 headers are now causing an error rather than being ignored.

HTTP2Flusher now catches HpackException.StreamException and generates a
RST_STREAM frame, rather than just closing the connection.

Modified HpackEncoder to throw HpackException in case of encoding failure.
Introduced HpackEncoder.validateEncoding (defaults true) so validation of
the headers can be disabled (useful for tests).

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-10-03 12:45:55 +02:00
Joakim Erdfelt 7807eafad9 Updating to version 9.4.22-SNAPSHOT 2019-09-26 10:46:28 -05:00
Joakim Erdfelt 72970db61a Updating to version 9.4.21.v20190926 2019-09-26 09:59:15 -05:00
Simone Bordet d39f19cc23 Issue #2429 - Review HttpClient backpressure semantic.
Introduced a Response.DemandedContentListener to explicitly separate
the will to request more content from the notification that the content
has been consumed.

Updated all transports to follow the new semantic: rather than waiting
for the callback to complete before delivering more content, now they
wait for the demand to be positive to deliver more content.

Since now the content may be unconsumed but there can be more demand,
all transport implementation had to be changed to use RetainableByteBuffer
to retain content buffers that were not consumed.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-19 17:19:25 +02:00
olivier lamy a117c4428a fix typo
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-09-13 06:22:09 +10:00
Simone Bordet 575a74d148
Merge pull request #4079 from eclipse/jetty-9.4.x-2815-hpackOpaqueBytes
Issue #2815 - HPack Opaque Bytes
2019-09-12 15:42:36 +02:00
Greg Wilkins afa987ac64 Update from review
reformat
Use ByteBuffer API

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-12 21:39:36 +10:00
Greg Wilkins 905bf82f80 reformatting
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-12 10:14:58 +10:00
Simone Bordet 63798f6664 Fixes #3956 - Remove and warn illegal HTTP/2 response headers.
Updates after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-11 23:55:25 +02:00
Greg Wilkins 90cf7c80bd avoid exceptions for non iso characters
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-11 10:50:42 +10:00
Greg Wilkins bc96561865 fixed bad merge
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-11 10:18:17 +10:00
Greg Wilkins bd220400a1 Merge branch 'jetty-9.4.x' into jetty-9.4.x-2815-hpackOpaqueBytes
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-09-11 10:17:33 +10:00
Simone Bordet c7867cdd5e Fixes #3956 - Remove and warn illegal HTTP/2 response headers.
Implemented RFC 7540 8.1.2.2.
Fields that should be removed are now dropped.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-09 19:47:06 +02:00
Simone Bordet 4e67e8594e Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-3978-http2_vulnerabilities'. 2019-09-05 23:12:35 +02:00
Simone Bordet 508ad4aff9 Issue #3978 - HTTP/2 vulnerabilities.
Code cleanups and reformatting.

Fixed logic for SETTINGS frame replies: they are not subject to rate control.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-09-05 23:11:53 +02:00
康智冬 49ba6d1acb fix typo and grammar (#4045)
Signed-off-by: KangZhiDong <worldkzd@gmail.com>
2019-09-02 14:29:50 -04:00
Greg Wilkins 53fc01793c Updates from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-26 13:20:07 +10:00
Greg Wilkins b2aa083778 Updates from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-26 13:18:12 +10:00
Olivier Lamy fe3d3f7158
fix checkstyle in test sources (#4013)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-08-22 19:56:41 +10:00
Simone Bordet 32fe4e5ca8 Issue #3978 - HTTP/2 vulnerabilities.
Fixed load test that required `RateControl.NO_RATE_CONTROL`.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-21 11:36:06 +02:00
Simone Bordet 5184c4ec3d Issue #3978 - HTTP/2 vulnerabilities.
Small fixed after review.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-19 11:38:01 +02:00
Greg Wilkins 5fc83c3d0c Issue #3978 HTTP2 Vulnerabilities
Reduce the number of RateControl fields, instead using common field in
HeaderParser.

Avoid null checking rateControl by having a NO_RATE_CONTROL static

HPack does not emit field with empty header name.

Apply rate control to any header parsing issue resulting in
session/stream failure

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-19 10:16:40 +10:00
Greg Wilkins 47fb8f4dea Issue #3978 HTTP2 Vulnerabilities
Fixed race in WindowRateControl by only removing the event that we
just inspected.

Added an AtomicInteger to track the size to avoid iterating over the
linked list.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-19 10:11:28 +10:00
Greg Wilkins 764fcd63a1 Merge branch 'jetty-9.4.x' into jetty-9.4.x-3978-http2_vulnerabilities 2019-08-19 08:46:28 +10:00
Simone Bordet cfe1baa048 Issue #3978 - HTTP/2 vulnerabilities.
Implemented rate control for HTTP/2 frames using a single RateControl
object to avoid that each individual vulnerability is within limits,
but combined they still overload the server.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-17 22:51:39 +02:00
Joakim Erdfelt f1efc99918 Updating to version 9.4.21-SNAPSHOT 2019-08-13 17:34:20 -05:00
Joakim Erdfelt 84700530e6 Updating to version 9.4.20.v20190813 2019-08-13 16:13:21 -05:00
Simone Bordet 264ceb143d Fixes #3601 - HTTP2 stall on reset streams.
After review, introduced WriteFlusher.isPending() and now using that
in the test case to test for TCP congestion.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-07 11:48:31 +02:00
Simone Bordet 762767c62c Fixes #3601 - HTTP2 stall on reset streams.
After review, updated the logic to always fail the transport.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-08-01 15:52:47 +02:00
Simone Bordet 753024af54 Merged branch 'jetty-9.4.x' into 'jetty-9.4.x-3601-http2_stall_on_reset_stream'. 2019-08-01 10:34:03 +02:00
Simone Bordet 3be03db5e6 Improved logging.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-07-26 11:52:08 +02:00
Simone Bordet 873d1c6d7d Fixes #3601 - HTTP2 stall on reset streams.
The client reset wakes up threads blocked in
writes, but these may again attempt to write,
therefore blocking again.

Now we detect that the stream is not writable
and mark the transport as failed, so that
writes fail immediately without blocking.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-07-25 22:21:13 +02:00
Simone Bordet 9f84c1cb8e Fixes #3829 - Avoid sending empty trailer frames for http/2 responses.
Added guard against the supplier of trailers returning null.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-07-11 15:06:15 +02:00
Simone Bordet a2011abec0 Fixes #3829 - Avoid sending empty trailer frames for http/2 responses.
Fixed the logic to send response trailers.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-07-11 11:46:06 +02:00
Greg Wilkins 9706d70484
Jetty 9.4.x reformat (#3811)
* Removing Legacy Method Separators
* Restyling branch `jetty-9.4.x`
* Applying changes highlighted by checkstyle
* Applying XML restyling
* Fixing XML codestyle for IntelliJ
* Fixing XML style mistakes
* Revert "Applying XML restyling"
* Updating checkstyle for XML codestyle
* Reformatting pom.xml files
* Fixed empty string from line wraps
* Update intellij style to not do expression relative formatting. Reformatted code based on that.
* Increasing line split on Eclipse IDE Formatter to 512
* Restoring setting on internal default value.
+ IntelliJ will not export settings on things that set to their
  internal default values.
  We want to keep those values as a hedge against future default
  value changes in future releases of IntelliJ.
* Fixing intellij codestyle
* do not allow single line simple methods
* misc checkstyle fixes
* re-exported with correct name and all values

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-06-24 17:40:30 +02:00
Joakim Erdfelt 40e9e053b9
Merge pull request #3768 from eclipse/jetty-9.4.x-3708-stringutil-replace
Issue #3708 - use StringUtil alternatives for known slow JVM impls.
2019-06-13 14:01:35 -05:00
Simone Bordet 0b56089327
Merge pull request #3772 from eclipse/jetty-9.4.x-3758-http2_dont_send_empty_trailers
Issue #3758 - Avoid sending empty trailer frames for http/2 requests.
2019-06-13 09:35:22 +02:00
Simone Bordet 82f7647629 Issue #3758 - Avoid sending empty trailer frames for http/2 requests.
Added one more test case and comments about handling of
`content.isConsumed()` in HTTP/2.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-06-12 19:15:15 +02:00
Joakim Erdfelt 877815e195 Issue #3708 - Adding new methods and converting codebase to use them
+ StringUtil.replace(String, char, char)
+ StringUtil.strip(String, String)
+ URIUtil.encodeSpecific(String, String)
+ URIUtil.decodeSpecific(String, String)
+ TypeUtil.toClassReference(Class)
+ TypeUtil.toClassReference(String)

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-06-12 09:56:41 -05:00
Simone Bordet 8f53d14e15 Issue #3758 - Avoid sending empty trailer frames for http/2 requests.
Modified the sender logic to allow specific subclasses to decide
when to send the trailers, if any.
This allows HTTP/2 to correctly compute the end_stream flag and avoid
sending empty trailers frames with end_stream=true.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-06-12 10:51:15 +02:00
Joakim Erdfelt ae21126cad Updating to version 9.4.20-SNAPSHOT 2019-06-10 13:40:17 -05:00
Joakim Erdfelt afcf563148 Updating to version 9.4.19.v20190610 2019-06-10 11:17:56 -05:00
Greg Wilkins cf9c238721 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-3681-HttpFieldsOptimize 2019-05-26 16:18:13 +02:00
Olivier Lamy f2c59a3cb7
add convenient StringUtil isEmpty method (#3687)
* add StringUtil.isEmpty

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-05-23 09:01:36 +10:00
Greg Wilkins 4ac511ba13 Issue #3681
minor cleanups

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-05-22 13:00:48 +02:00
Greg Wilkins 2831bfb159 Issue #3681
Better default HttpFields size with TODOs to tune.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-05-21 12:40:40 +02:00
Simone Bordet 6e52c8cb61
Merge pull request #3632 from eclipse/jetty-9.4.x-3605-http2_client_channel_recycle
Fixes #3605 - IdleTimeout with Jetty HTTP/2 and InputStreamResponseListener
2019-05-20 10:38:01 +02:00
Joakim Erdfelt b44ecc932a Issue #2909 - Replace B64Code with java.util.Base64
+ Deprecated B64Code
+ All code that isn't B64CodeTest is now using java.util.Base64
+ B64CodeTest is updated to confirm change to java.util.Base64
  is possible without change in behavior. Just have to make
  sure you use the appropriate Encoder / Decoder for the task
  at hand (default vs mime vs url)

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-05-15 10:08:11 +02:00
Simone Bordet b410d75091 Fixes #3605 - IdleTimeout with Jetty HTTP/2 and InputStreamResponseListener.
Now properly resetting HttpReceiverOverHTTP2.ContentNotifier by overriding
reset() and making sure fields are cleared from previous values.
Also, disable channel recycling by default - needs to be benchmarked
whether it's beneficial or not.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2019-05-07 16:22:44 +02:00
Joakim Erdfelt 41ab9baf8c Standardizing on hamcrest Matchers (not CoreMatchers from junit4)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-04-30 14:39:57 -05:00
Joakim Erdfelt 702e32049e Removing junit dependency
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-04-30 13:16:56 -05:00
Joakim Erdfelt 2b93a4e7ea Updating jetty-test-helper + junit5 + hamcrest
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-04-30 12:23:55 -05:00
Joakim Erdfelt 734be56938 Updating to version 9.4.19-SNAPSHOT 2019-04-29 16:27:23 -05:00
Joakim Erdfelt e1bc35120a Updating to version 9.4.18.v20190429 2019-04-29 15:40:33 -05:00
Joakim Erdfelt 05bb111580 Updating to version 9.4.18-SNAPSHOT 2019-04-18 15:59:49 -05:00
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