Commit Graph

1808 Commits

Author SHA1 Message Date
Ludovic Orban 2018c439b6 #12268 reset _iterate flag when another processing is scheduled
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2024-09-16 09:11:54 +02:00
Joakim Erdfelt 044a3be744
Merge pull request #12245 from jetty/release/12.0.13
Merge back release 12.0.13
2024-09-11 09:45:12 -05:00
Simone Bordet 4b40aa7116
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-09 17:38:00 +02:00
Simone Bordet fa0502db54
Fixes #12249 - HTTP/2 responses with Content-Length may have no content. (#12250)
Fixed HttpReceiverOverHTTP2.read() to return a failed chunk if the stream has been reset.
This closes the window where a RST_STREAM frame may be received, drain the DATA frames in HTTP2Stream, and the application reading exactly at that point.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-09 17:20:17 +02:00
Simone Bordet 2e4ecdaa9c
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-06 12:00:00 +02:00
Simone Bordet 5bff971fb0
Fixed flaky test EventsHandlerTest.testEventsOfNoopHandler().
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-06 11:58:45 +02:00
gregw fda0408e38 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x
# Conflicts:
#	jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/internal/HttpConnection.java
2024-09-06 14:18:20 +10:00
Simone Bordet 6887435773
Fixes #12227 - Improve HttpConnection buffer recycling. (#12237)
In this PR, the responsibility to release the buffers is in 2 methods: onFillable() (called when network data is available, and to process the next request) and parseAndFillForContent() (called from Request.read()).

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: gregw <gregw@webtide.com>
2024-09-06 14:11:29 +10:00
Olivier Lamy f0a1db100f
Jetty 12.0.x Add jdk23 build (fix javadoc breaking with 23) (#12238)
* add jdk23 build
* make jdk23 happy with javadoc
---------

Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-06 10:57:42 +10:00
Lachlan Roberts a5727d8e27
Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-09-05 23:32:29 +10:00
Lachlan 8c5d5e8a15
Merge pull request #12186 from jetty/jetty-12.1.x-servletUpgrade
implement servlet upgrade for ee10 and ee11
2024-09-05 08:23:16 +10:00
Olivier Lamy 65e9bba44c
next snapshot
Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-03 21:44:43 +10:00
Olivier Lamy 816018a420
Updating to version 12.0.13 2024-09-03 13:03:43 +10:00
Lachlan 899c005e34
Merge pull request #12208 from jetty/jetty-12.0.x-11434-AliasCheckerSymlinkTests
Issue #11434 - resolve differences in AliasCheckerSymlinkTests
2024-09-03 10:02:56 +10:00
gregw 165327a1bf Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x
# Conflicts:
#	jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/internal/HttpConnection.java
#	jetty-core/jetty-tests/jetty-test-client-transports/src/test/java/org/eclipse/jetty/test/client/transport/AbstractTest.java
2024-09-03 08:04:07 +10:00
Greg Wilkins 551710e9bb
Improve shutdown of non-persistent HTTP/1 connections #12212 (#12216)
* Improve shutdown of non-persistent HTTP/1 connections

 + shutdown in SendCallback

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

---------

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-03 07:58:16 +10:00
Ludovic Orban 8084cc575a fix flaky test by not asserting a number of idle threads that is above the minimum
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2024-09-02 19:34:15 +02:00
Ludovic Orban 5439f17ff6
Rework leak tracking assertions to use a common awaitility pattern (#12226)
Rework leak tracking assertions to use a common awaitility pattern

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2024-09-02 19:34:05 +02:00
Jan Bartel ee5968e748 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-09-02 16:30:52 +10:00
Jan Bartel caa09ad2cc
Issue #12207 reinstate DefaultHandler for jetty maven plugin (#12211) 2024-09-02 16:29:39 +10:00
Lachlan Roberts f795fb10d0
PR # 12186 - changes from review
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-09-02 15:52:53 +10:00
gregw e58eef20d7 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-09-02 11:51:07 +10:00
gregw eecf4cf555 Tagged tests as Isolated that modify the static RESOURCE_FACTORIES 2024-09-02 11:50:17 +10:00
gregw 895944920b Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-09-02 08:23:58 +10:00
gregw 3d5a58a1f4 minor cleanups a potential flaky fix 2024-09-02 08:23:28 +10:00
gregw b4232317c7 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-08-31 07:53:43 +10:00
Greg Wilkins ebc5e559f8
Removed reliance on exception to shutdown non persistent connections (#12213)
Moved the shutdownOutput in HttpStreamOverHttp1 to before the continuation of handling
2024-08-31 07:51:01 +10:00
Simone Bordet 4ee55c2a4d
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-30 12:12:52 +02:00
Simone Bordet 1726c8778c
Fixes HttpClient Content.Source reads from arbitrary threads (#12203)
* Reworked HttpReceiverOverHTTP state machine, in particular:
** Introduced a boolean parameter to parseAndFill() and parse(), that specifies whether to notify the application demand callback.
   This is necessary because reads may happen from any threads, and must not notify the application demand callback.
   Only when there is no data, and fill interest is set, then the application demand callback must be notified.
** Removed action field to avoid lambda allocation.
** Now the application is called directly from the parse() method.
** Reading -1 from the network drives the parser by calling again parse(), rather than the parser directly.
  This allows to have a central place to notify the response success event.

* Fixed FastCGI similarly to HTTP/1.1.
* Removed leftover of the multiplex implementation.

* Fixed test flakyness in `NetworkTrafficListenerTest`: consume the request content before sending the response.

* Follow up after #10880: only abort the request if there is request content in `AuthenticationProtocolHandler` and `RedirectProtocolHandler`.
  This avoids the rare case where the response arrives before the request thread has modified the request state, even if the request has been fully sent over the network, causing the request to be failed even if it should not.

* added `SerializedInvoker` assertions about current thread invoking.
* Name all SerializedInvoker instances for better troubleshooting.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
Co-authored-by: Ludovic Orban <lorban@bitronix.be>
2024-08-30 12:01:43 +02:00
Olivier Lamy 87af4f43f4
Merge branch 'jetty-12.0.x' into jetty-12.1.x 2024-08-30 16:55:46 +10:00
Olivier Lamy e1cd1f57c8
Move h2spec exec to a profile (#12209)
* move h2spec plugin exec to a profile

---------

Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-08-30 12:06:40 +10:00
gregw f588c53e41 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-08-30 08:42:37 +10:00
Dmitry Kaukov 4755fa3f68
Customizable error page buffer size (#11654)
Customizable error page buffer size

---------

Co-authored-by: Greg Wilkins <gregw@webtide.com>
2024-08-30 08:33:10 +10:00
Ludovic Orban 85d7d07a24
Fix `DynamicCapacity.release()` (#12083)
#12082 Add assertions to DynamicCapacity to avoid entering an undetected corrupt state after it is released.

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2024-08-29 15:53:08 +02:00
Lachlan Roberts 677de2fe17
Merge remote-tracking branch 'origin/jetty-12.1.x' into jetty-12.1.x-servletUpgrade 2024-08-29 12:35:05 +10:00
Lachlan Roberts c64e0bbbe6
PR #12186 - add javadoc for Connection.Upgrade
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-29 12:31:37 +10:00
Lachlan Roberts e13b9ad84c
PR #12186 - changes from review
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-29 12:17:17 +10:00
Lachlan Roberts b6f2c869e5
PR #12186 - Make HttpConnection internal and implement a public Upgrade interface
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-29 11:44:22 +10:00
Lachlan Roberts 178a795f93
Issue #11434 - resolve differences in AliasCheckerSymlinkTests
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-29 08:28:15 +10:00
Lachlan 95547c2ac4
Merge pull request #12197 from jetty/jetty-12.1.x-openid-jettyIntegrations
Move jetty-openid module to jetty-integrations
2024-08-29 08:12:57 +10:00
Ludovic Orban ed1cadc449
fix npe when onCompleteFailure happens after reset (#12199)
Fix npe when onCompleteFailure happens after reset

Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2024-08-28 19:43:54 +02:00
gregw 1ea02673ac Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-08-28 20:29:02 +10:00
Greg Wilkins aa07995f37
sendError(-1) is an abort (#12206)
restore behaviour from jetty <= 11 where a sendError(-1) is a true abort, without an attempt to send an error response.
2024-08-28 20:24:10 +10:00
gregw 1bf074894a Merge branch 'fork/Tony-the-Tech/fix/12.0.x/SslContextFactory_use_credential' into jetty-12.0.x
Updated with call to check if old behaviour has been extended.
2024-08-28 09:13:22 +10:00
gregw d2696dcdf3 remove disabled tags 2024-08-28 08:34:01 +10:00
Simone Bordet f7e0e523d9
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-27 10:05:20 +02:00
Simone Bordet 0420e926a1
Fixes #12171 - QoSHandler does not resume on a virtual thread. (#12174)
Now QoSHandler resumes requests using Request.getComponents().getExecutor().
This Executor is configured to be the virtual thread executor, if present, otherwise the Server Executor.

Removed warn() from VirtualThreads.isVirtualThread(), as it was too verbose.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-27 10:03:48 +02:00
Lachlan Roberts 594a65099c
Merge remote-tracking branch 'origin/jetty-12.1.x' into jetty-12.1.x-servletUpgrade 2024-08-27 17:57:45 +10:00
Joakim Erdfelt c97f5d7ac8
Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-08-26 11:50:22 -04:00
Joakim Erdfelt 4fd306fcc2
Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-VirtualThreadPoolSemaphore 2024-08-26 09:01:06 -05:00
Joakim Erdfelt 94ea3694a2
Trying to get more information about 400 response parse flaky test 2024-08-26 08:53:54 -05:00
Simone Bordet 1d4a77472a
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:53:30 +02:00
Simone Bordet 0f28d47597
Fixed assertion mismatch between int and long.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:52:55 +02:00
Simone Bordet 272895ce02
Issue #12023 - Remove deprecated classes/methods. (#12149)
Removed deprecated classes/methods from jetty-client.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:42:53 +02:00
Simone Bordet cffda533e3
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:41:16 +02:00
Simone Bordet 0a56509130
Fixes #11822 - HTTP/2 responses exceeding SETTINGS_MAX_HEADER_LIST_SIZE do not result in RST_STREAM or GOAWAY. (#12165)
Now HpackException.SessionException is treated specially in HTTP2Flusher.
It is caught, it fails all the entries, and then tries to send a GOAWAY, which will be the only frame allowed into the HTTP2FLusher at that point.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:33:17 +02:00
Simone Bordet 1e95e89ddc
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:28:34 +02:00
Simone Bordet 930d91568a
Fixes #9121 - Flaky BlockedWritesWithSmallThreadPoolTest.testServerThreadsBlockedInWrites(). (#12178)
The test uncovered a larger problem detailed in the issue: the Handler Callback should be non-blocking.

Since all implementations of HttpStream are non-blocking, overridden HttpStream.getInvocationType() to return NON_BLOCKING.

This guarantees that even in case of all server threads blocked, blocked/pending writes can be completed.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:12:38 +02:00
Simone Bordet 7aaca7d74d
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:11:11 +02:00
Simone Bordet 21f2f2acea
Fixes #3553 - Support sslSession() in Jetty Client. (#12179)
Implemented Connection.getSslSessionData(), where the Connection can be obtained from the Request:
request.getConnection().getSslSessionData().

Updated documentation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-26 11:10:04 +02:00
Lachlan Roberts 8464340f07
Fix potential NPE from VirtualThreadPool
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-26 12:36:53 +10:00
Lachlan Roberts 9756387020
move jetty-openid from jetty-core to jetty-integrations
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-26 11:13:24 +10:00
Lachlan d8fad1fa16
Merge pull request #12188 from jetty/jetty-12.1.x-SignInWithEthereum
Issue #11560 - Implement EIP-4361 Sign-In With Ethereum
2024-08-26 11:07:42 +10:00
Lachlan c0d5adf6c6
Merge pull request #12181 from jetty/jetty-12.1.x-websocketMethodHolder
Issue #6328 - avoid binding WebSocket MethodHandles
2024-08-26 11:04:11 +10:00
gregw 5bbae27d1b disable broken tests to be fixed in #12171 2024-08-26 10:55:38 +10:00
Greg Wilkins 7d7eeb3b1e
Experiment with IteratingCallback (#12040)
The previous semantic of `onCompleteFailure` has been renamed to `onFailure(Throwable)`, which is called immediately (but serialized) on either an abort or a failure.   A new `onCompleteFailure(Throwable)` method has been added that is called only after a `failed(throwable)` or a `abort(Throwable)` followed by `succeeded()` or `failed(Throwable)``

No usage has yet been made of the new `onCompleteFailure`, but the ICB implementation has been completely replaced by the one developed in #11876

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Ludovic Orban <lorban@bitronix.be>
2024-08-26 10:18:57 +10:00
Tony Copping 66e4bd862f Issue #12175 Updates based on feedback
Signed-off-by: Tony Copping <tony@sigsoft.ca>
2024-08-24 10:05:01 -06:00
Simone Bordet b9bcb58a6d Issue #12023 - Remove deprecated classes/methods.
Removed deprecated methods from EndPoint.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 19:09:33 +03:00
Simone Bordet 1af998065d
Fixed parent version in newly introduced Maven module merged from 12.0.x.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 16:40:58 +02:00
Simone Bordet 95665b778e
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 16:36:51 +02:00
Simone Bordet bb52d95a62
Fixes #12063 - Introduce Jetty module for HTTP/2 client dependencies. (#12170)
Introduced http2-client.mod and http2-client-transport.mod.
These modules download dependencies via a [files] section.
They can be used to have the server provide the dependencies in case of a web application proxies request using HTTP/2.

Fixed ContentProvider to set the context ClassLoader before reading the Jetty XML context file, which may reference classes from the web application.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 16:33:51 +02:00
Simone Bordet 3170946ad1
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 12:14:39 +02:00
Simone Bordet cc469a136d
Code/Import cleanups.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 12:01:16 +02:00
Simone Bordet 01ce4dbe64
Limited max suspended requests to 1024 by default.
Javadocs, comment and logging improvements.
Simplified test case.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 11:59:31 +02:00
Lars Krog-Jensen 034493ad7f
Issue #12185 code formatting 2024-08-23 11:59:31 +02:00
Lars Krog-Jensen 994012e7eb
Issue #12185 Custom FJP in unit test and more white space formatting 2024-08-23 11:59:30 +02:00
Lars Krog-Jensen f37a4a167b
Issue #12185 white space formatting and increase delay to avoid flaky tests 2024-08-23 11:59:30 +02:00
Lars Krog-Jensen 32652e88bc
Issue #12185 code formatting 2024-08-23 11:59:30 +02:00
Lars Krog-Jensen b7591d546f
Issue #12185 implementation/test of max suspended requests in QoSHandler 2024-08-23 11:59:30 +02:00
Jan Bartel dbb982108b
Fix order of jetty.http.port property for jetty maven plugin (#12183) 2024-08-23 11:59:30 +02:00
Simone Bordet 9f08dc3050
Fixes #12154 - Limit concurrent virtual threads. (#12155)
Updated VirtualThreadPool to limit the number of concurrent virtual threads using a Semaphore.

Updated modules and documentation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 11:59:30 +02:00
Olivier Lamy ba4cc396eb
change urls https://eclipse.dev to https://jetty.org (#12172)
* change urls https://eclipse.dev to  https://jetty.org

---------

Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-08-23 11:59:29 +02:00
Simone Bordet dfe1e6ba90
Merged branch 'jetty-12.0.x' into 'jetty-12.1.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 11:34:23 +02:00
Simone Bordet aae0a55104
Limited max suspended requests to 1024 by default.
Javadocs, comment and logging improvements.
Simplified test case.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-08-23 11:31:11 +02:00
Jan Bartel dc41ad90ab
Fix order of jetty.http.port property for jetty maven plugin (#12183) 2024-08-23 10:50:57 +02:00
Lachlan Roberts cb691cd3ff
PR #12186 - deprecate servletUpgrade method on HttpParser and rename to upgrade()
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-23 14:07:05 +10:00
Lachlan Roberts d56c9628c1
Merge remote-tracking branch 'origin/jetty-12.1.x' into jetty-12.1.x-SignInWithEthereum 2024-08-23 13:43:33 +10:00
Lachlan Roberts b40a942a65
PR #12188 - move code to jetty-integrations/jetty-ethereum
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-23 13:40:47 +10:00
Paul B. Henson d4dbece1af Add new rewrite rule to return response status code based on matching header values 2024-08-22 17:22:50 -07:00
Lars Krog-Jensen 30791c16ee Issue #12185 code formatting 2024-08-22 12:18:02 +02:00
Lars Krog-Jensen 7976e75b11 Issue #12185 Custom FJP in unit test and more white space formatting 2024-08-22 12:07:32 +02:00
Lars Krog-Jensen 6868c34bdf Issue #12185 white space formatting and increase delay to avoid flaky tests 2024-08-22 11:28:34 +02:00
Lars Krog-Jensen 7aa4c79ab7 Issue #12185 code formatting 2024-08-22 10:58:51 +02:00
Lars Krog-Jensen 497da2da0a Issue #12185 implementation/test of max suspended requests in QoSHandler 2024-08-22 10:32:29 +02:00
Jan Bartel 2a90cabec4 Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.1.x 2024-08-22 18:20:38 +10:00
Jan Bartel 36ec04f92e
Fix order of jetty.http.port property for jetty maven plugin (#12183) 2024-08-22 18:19:44 +10:00
Lachlan Roberts 11509c2d58
update poms to 12.1.0-SNAPSHOT versions
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-08-22 14:07:56 +10:00
Lachlan Roberts 25cf822e3a
Merge remote-tracking branch 'origin/jetty-12.0.x-SignInWithEthereum' into jetty-12.1.x 2024-08-22 13:19:51 +10:00
Lachlan Roberts b07a8c0104
Merge remote-tracking branch 'origin/jetty-12.0.x' into jetty-12.0.x-SignInWithEthereum 2024-08-22 13:18:38 +10:00
Lachlan Roberts e9233804c8
Merge remote-tracking branch 'origin/jetty-12.1.x' into jetty-12.1.x-websocketMethodHolder 2024-08-22 13:05:37 +10:00