Commit Graph

30047 Commits

Author SHA1 Message Date
Joakim Erdfelt e77516598a
Updating to version 12.0.14 2024-09-30 09:22:20 -05:00
Joakim Erdfelt e376b1a951
HttpURI.Mutable path changes should clear out any existing path violations before parsing the new path. (#12306)
* HttpURI.Mutable path changes should clear out any existing path violations before parsing the new path.

Fixes: #11298
2024-09-30 07:09:21 -05:00
Jan Bartel 97ff5486ff
Jetty 12.0.x 12191 alt debug listener (#12254)
* Issue #12191 reinstate debug listener modules

---------

Co-authored-by: Greg Wilkins <gregw@webtide.com>
2024-09-30 17:15:20 +10:00
Olivier Lamy a1dbb725da
Jetty 12.0.x add Eclipse Dash License plugin as part the build process (#12224)
* Issue #12195 add eclipse dash profile to run license-check tool
* upgrade hazelcast

---------

Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-29 11:46:33 +10:00
Simone Bordet 11476a9f1c Fixes #7515 - Connection limit problem for "onAccepting" connections.
* Fixed `ManagedSelector.Accept` to emit the event "accept failed" when closed.
* Fixed `ConnectionLimit` to close connections that exceed the maximum (may happen when the connector is configured with acceptors=0).
* Added test cases.
* Added documentation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-27 19:12:52 +03:00
Simone Bordet bcadd0a515 Fixes #12265 - Jetty 12.0.13 fails to start when the threadpool-all-virtual module is enabled.
Added missing constructor and test case.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-27 19:11:28 +03:00
Simone Bordet b371002594
Issue #929 - Implement a utility class to save large downloads to a file.
* PathResponseListener now yields a PathResponse record with Path and Response.
* Code cleanups.
* Simplified test cases.
* Added documentation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-27 17:16:20 +02:00
Oleksandr Krutko 03af351b14
Fixes #929 - Implement a utility class to save large downloads to a file.
Introduced `PathResponseListener`, and related test cases.

Signed-off-by: Oleksandr Krutko <alexander.krutko@gmail.com>
2024-09-27 17:14:25 +02:00
Joakim Erdfelt f4c38c433e
Issue #11092 - Allow MetaInfConfiguration parsing of `java.class.path` to support globs (#12287)
* Issue #11092 - Allow MetaInfConfiguration parsing of java.class.path to support globs
* Work with unwrapped URIs for uriPredicate (and test assertion)
2024-09-26 06:40:29 -05:00
Olivier Lamy 09b8aacc30
Remove jdk22 build (#12314)
Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-26 06:38:22 -05:00
Jan Bartel ba0ba99919
Issue #12315 fix flakey session AsyncTest (#12316) 2024-09-26 16:45:59 +10:00
Robbie 8aa9c8b011
Use sessionRequest for wrapping HTTP stream instead of original Request. (#12303)
Add SessionHandlerTest case to ensure that flushOnResponseCommit is not broken
in the future.

Signed-off-by: Robert B. Langer <robertlanger03@gmail.com>
2024-09-26 13:36:10 +10:00
Simone Bordet af3ac05806
Fixes #7951 - OutputStreamContentProvider blocks forever during an HTTP2 upload after idle timeout is reached. (#12312)
Improved javadocs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-25 17:34:42 +02:00
Jan Bartel 04fd45d94e
Issue #12309 replaced transient keyword for SessionAuthentication.session (#12310) 2024-09-25 14:31:17 +10:00
gregw 018647d873 Added test for #11298 2024-09-25 10:42:16 +10:00
Greg Wilkins 18b9782550
Avoid list copy on reverse iteration (#12297)
This reverts/modified parts of commit 115ee1cf39.

Co-authored-by: Simone Bordet <simone.bordet@gmail.com>

---------

Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-25 07:43:01 +10:00
Niklas Keller 1d9f10871a
Issue #12047 allow disabling opening connectors before starting (#12049) 2024-09-24 14:40:16 +10:00
Ludovic Orban cbc3ac01f2 #11841 add reproducer using jetty client
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2024-09-23 13:27:26 +02:00
Simone Bordet 115ee1cf39
Fixes #12289 - Improve ConcurrentPool concurrency. (#12290)
A call to `sweep()`, although protected by the lock for concurrent calls to `reserve()`, may be concurrent with `remove(Entry)`.

`remove(Entry)` in turn calls `entries.remove(Object)`, so that the concurrent iteration in `sweep()` over `entries` fails with an `ArrayIndexOutOfBoundsException`.

Now using the bulk `entries.removeIf(Predicate)` method in `sweep()`, so that sweeping is atomic with respect to `entries.remove(Object)`.

Fixed other occurrences of manual iteration over CopyOnWriteArrayList that may be concurrent with removals.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-20 15:50:39 +02:00
Simone Bordet 9c342637cc Fixed #12284 - Excessive heap consumption by SSLSessionImpl by Jetty Server with TLS 1.3 and long-lived client.
Now `SslSessionData` is stored as a field, rather than in the `SSLSession` as an attribute.
This implies a little more cost to create the `SslSessionData` per connection rather than per `SSLSession`, but it should be negligible.

Now `SslSessionData` cannot be retrieved as a `SSLSession` attribute, but we have explicit APIs to retrieve it, so it should not be a problem.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-20 16:41:15 +03:00
Jan Bartel 6f83639d32
Issue #12279 ensure handlers added correctly for maven plugin (#12282)
* Issue #12279 ensure handlers added correctly for maven plugin
2024-09-19 09:38:08 +10:00
Jan Bartel 41333a7712
Issue #12255 Dump CookieConfig (#12257) 2024-09-18 06:57:30 -05:00
Greg Wilkins dc43f3d498
Optimize request buffer release #12239 (#12240)
Release request buffer before handling when there is no content

---------

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-18 07:11:32 +10:00
Olivier Lamy e52bd7a9c7
Jetty 12.0.x Simplify tests with OpenId by using an exising openid provider and avoid extra not necessary maven modules (#12274)
* use keycloak as openid provider for testing
* merge all test-distribution into a single one

---------

Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-17 15:08:49 +10:00
Simone Bordet 8c943c4bfb Issue #12256 - Configuring Virtual Thread executor in Jetty Http client makes my Spring Boot app freeze
* Defaulted the number of selectors to 1 in HttpClientTransportOverHTTP, to align with ClientConnector.
* Improved virtual thread documentation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-16 11:01:06 +03:00
Ludovic Orban ceee65a7e5 #12268 do not rely on time
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2024-09-16 09:11:54 +02:00
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
Jan Bartel 5105afafa4
Issue #12241 Restore SameSite config as session cookie comment. (#12263)
* Issue #12241 Restore SameSite config as session cookie comment in ee8/9.
2024-09-16 08:48:06 +10:00
Olivier Lamy daa4923779
Jetty 12.0.x Use cache stored in nexus to avoid having to maintain a separate nginx pod which consume cpu and memory (#12258)
* use nexus remote cache rather than home made container

---------

Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-12 07:08:44 +10: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 24f0ac28ad Fixes #11327 - Flaky test ServletTest.testSimpleIdleRead().
Just improving the test code.
The flakyness was likely fixed by the work in #12216 and #12237.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-10 12:03:02 +03: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
Olivier Lamy d5130f1f44
remove useless option
Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-07 08:59:50 +10: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
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
Simone Bordet c2519bbf48 Fixes #11581 - Flaky WebSocketOverHTTP2Test.testWebSocketOverDynamicHTTP2()
Marked the test as flaky, actual resolution needs resolving #12235.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2024-09-05 13:16:23 +03: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
Olivier Lamy e804e861ea
deployAtEnd and a bit more memory for Maven process
Signed-off-by: Olivier Lamy <olamy@apache.org>
2024-09-03 11:38:09 +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
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 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 caa09ad2cc
Issue #12207 reinstate DefaultHandler for jetty maven plugin (#12211) 2024-09-02 16:29:39 +10:00
Lachlan Roberts 4164ab782b
PR #12208 - changes from review
Signed-off-by: Lachlan Roberts <lachlan.p.roberts@gmail.com>
2024-09-02 12:01:02 +10:00
gregw eecf4cf555 Tagged tests as Isolated that modify the static RESOURCE_FACTORIES 2024-09-02 11:50:17 +10:00
gregw 3d5a58a1f4 minor cleanups a potential flaky fix 2024-09-02 08:23:28 +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 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
gregw fb82a44bc6 flaky test tag 2024-08-30 17:27:03 +10:00