Commit Graph

18120 Commits

Author SHA1 Message Date
Lachlan Roberts fbe3803cd1 fix checkstyle issue
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-06 12:19:38 +10:00
Lachlan 9a56301de1
Merge pull request #5004 from eclipse/jetty-9.4.x-4985-AttributeNameSet
Issue #4985 - fix NPE related to use of Attributes.Wrapper getAttributeNameSet()
2020-07-06 11:34:27 +10:00
Lachlan Roberts 6a8a6efd1c Issue #5018 - add request timeout onto ClientUpgradeRequest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-04 11:37:45 +10:00
Simone Bordet ae43b70a9f
Jetty 9.4.x 4967 buffer corruption for http2 failures (#5001)
Fixes #4967 - Possible buffer corruption in HTTP/2 session failures

Partially reverted the changes introduced in #4855, because they
were working only when sends were synchronous.

Introduced ByteBufferPool.remove(ByteBuffer) to fix the issue.
Now when a concurrent failure happens while frames are being
generated or sent, the buffer is discarded instead of being
recycled, therefore resolving the buffer corruption.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-07-03 16:35:33 +02:00
Simone Bordet e0955192b8
Jetty 9.4.x 4976 httpclient fix null network buffer (#5010)
Fixes #4976  HttpClient async content throws NPE in DEBUG log.

Reworked handling of asynchronous content by immediately exiting
HttpReceiverOverHTTP.process(), so that there is no race with
other threads that have been scheduled to resume the processing.

The call to HttpReceiver.dispose() that could be triggered by
an asynchronous failure is now performed either by the failing
thread (if the HttpReceiver is not processing) or by an I/O
thread (if the HttpReceiver is processing) similarly to what
happens when terminating the response.

The content decoding has been reworked to perform the required
state changes similarly to what non-decoded content is doing,
as this was completely lacking before (it was actually a side
bug that is now fixed).

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Co-authored-by: Ludovic Orban <lorban@bitronix.be>
2020-07-03 09:30:15 +02:00
Simone Bordet 5510d7a9b1
Merge pull request #5014 from eclipse/jetty-9.4.x-5012-badJaasTestDependency
Issue #5012 - Remove unneeded dependency for test-jaas-webapp
2020-07-02 09:44:26 +02:00
Zac Duncan c77ad80d94 add constructor that takes in all params that super needs.
Signed-off-by: Zac Duncan <zac.duncan@gmail.com>
2020-07-02 09:28:09 +02:00
Lachlan Roberts f35d6cfd80 Issue #4985 - remove TODO in Dispatcher
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-02 16:02:24 +10:00
Lachlan Roberts 6407322d9c Issue #5012 - Remove unneeded dependency for test-jaas-webapp
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-07-02 11:15:34 +10:00
Simone Bordet 43e5473998 Fixes #4981 - Incorrect example for TryFilesFilter API docs.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-30 09:28:43 +02:00
Lachlan Roberts 9126b282b1 Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-4985-AttributeNameSet 2020-06-30 11:22:41 +10:00
Jan Bartel 49615156f9 Fix blank line in import. 2020-06-29 10:39:58 +02:00
Joakim Erdfelt 3adec35cf5
Fixing CustomImportOrder checkstyle violations
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-25 09:25:05 -05:00
Joakim Erdfelt cb898ac74a
Bumping up to Checkstyle 8.29
+ This is in response to a dependabot notification
  of vulnerabilities in Checkstyle 8.20

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-25 09:24:36 -05:00
Joakim Erdfelt eb84c244d2
Ensuring that usage of "/**/" within tests don't trigger checkstyle violation.
Example: arguments.add(Arguments.of("glob:/**/*.jar", true));
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-25 09:23:46 -05:00
Lachlan Roberts 693312a577 Issue #4985 - ensure every attribute in getAttributeNameSet has a non null value
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-25 23:15:12 +10:00
Lachlan 1b59672b7f
Merge pull request #4987 from eclipse/jetty-9.4.x-1100-WebSocketEncoderLifeCycle
Issue #1100 - ensure init and destroy are always called on JSR356 Encoders
2020-06-23 09:43:50 +10:00
Lachlan Roberts 0db20886d0 Issue #1100 - ensure init and destroy are always called on JSR356 Encoders
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-22 11:51:06 +10:00
Lachlan Roberts a03a352d79 Issue #1100 - replicate issue where Encoder init and destroy never called
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-22 11:21:46 +10:00
Olivier Lamy a644a4b390
no need of creating/attaching sources twice for release as it is done in the default build (and we do not need forking a lifecycle for that) (#4938)
* no need of creating/attaching sources twice for release as it is done in the default build

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* comment

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>

* no need to fork a lifecycle when attaching sources files

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-06-19 12:47:46 +10:00
Simone Bordet c0481a5e5f
Issue #4965 - WINDOW_UPDATE for locally failed stream should not clos… (#4969)
* Issue #4965 - WINDOW_UPDATE for locally failed stream should not close the HTTP/2 session.

Improved HTTP2Session.onWindowUpdate() code to correctly check whether
the stream is already closed, and if so, just drop the WINDOW_UPDATE.
Refactored onResetForUnknownStream() to base class.
Other small refactorings to improve logging.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-18 15:23:51 +02:00
Lachlan Roberts 5ce5737395 fix information on ThreadPool configuration
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-18 17:45:32 +10:00
olivier lamy f745d5d5df remove unused imports and upgrade testcontainers.version
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-06-15 17:40:15 +10:00
Joakim Erdfelt 4abd8b1b39
Merge remote-tracking branch 'origin/release-9.4.30' into jetty-9.4.x 2020-06-12 11:31:42 -05:00
Jan Bartel 004bbe4e9f Add deletion test for memcached session data cache.
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-06-12 18:20:14 +10:00
olivier lamy 7f0c725fd4 upgrade testcontainers to 1.14.2
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-06-12 18:20:14 +10:00
olivier lamy a78d2f475d use testcontainers to start memcached via docker for testing real remote memcached server
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-06-12 18:20:14 +10:00
Joakim Erdfelt 6df6fa33b8 Updating to version 9.4.31-SNAPSHOT 2020-06-11 08:24:34 -05:00
Joakim Erdfelt 271836e4c1 Updating to version 9.4.30.v20200611 2020-06-11 07:21:18 -05:00
Joakim Erdfelt de6273baae
Merge pull request #4959 from eclipse/jetty-9.4.x-4903-fix-public-endpoint-check
Issue #4903 - Improved behavior for Custom ServerEndpointConfig.Configurator
2020-06-11 06:32:21 -05:00
Lachlan Roberts 66ef0ebc03 Issue #4903 - do ServerEndpointConfig validation check before started
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-11 19:20:49 +10:00
olivier lamy c48aee0a54 maven war plugin 3.3.0
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-06-11 10:08:41 +10:00
Lachlan Roberts f41f601e19 Issue #4903 - fix validation on custom Configurator annotated endpoint
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-11 09:58:49 +10:00
Joakim Erdfelt b22e306796
Issue #4903 - Improved behavior for Custom ServerEndpointConfig.Configurator
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-10 17:03:26 -05:00
Jan Bartel cb09abe873
Issue #4920 Restore ability to invalidate sessions on shutdown (#4933)
Signed-off-by: Jan Bartel <janb@webtide.com>
2020-06-10 18:40:19 +02:00
Joakim Erdfelt 9bfc168329
Issue #4903 - Improved behavior for Custom ServerEndpointConfig.Configurator
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-10 11:01:30 -05:00
olivier lamy cbda92ab8c add olamy key
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-06-10 16:20:58 +10:00
Simone Bordet 1d16310bd2
Merge pull request #4953 from lorban/jetty-9.4.x-4855-h2spec-8-1-2-6-failure
Fix h2spec 8.1.2.6 test failure
2020-06-09 17:07:22 +02:00
Ludovic Orban 714a9204b3 #4855 fix race condition that can sometimes make H2 stream send an improper reset with cancel error code instead of protocol error code when the client sends more data than the content-length header specifies
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-06-09 16:59:49 +02:00
Simone Bordet 56bda1b3ae
Jetty 9.4.x 4855 h2spec failures (#4946)
* Fixes #4855 - Occasional h2spec failures on CI

In case of bad usage of the HTTP/2 API, we don't want to close()
the stream but just fail the callback, because the stream
may be performing actions triggered by a legit API usage.

In case of a call to `AsyncListener.onError()`, applications may decide to call
AsyncContext.complete() and that would be a correct usage of the Servlet API.
This case was not well handled and was wrongly producing a WARN log with an
`IllegalStateException`.

Completely rewritten `HttpTransportOverHTTP2.TransportCallback`.
The rewrite handles correctly asynchronous failures that now are executed
sequentially (and not concurrently) with writes.
If a write is in progress, the failure will just change the state and at the
end of the write a check on the state will determine what actions to take.

A session failure is now handled in HTTP2Session by first failing all the
streams - which notifies the Stream.Listeners - and then failing the session
- which notifies the Session.Listener.
The stream failures are executed concurrently by dispatching each one to a
different thread; this means that the stream failure callbacks are executed
concurrently (likely sending RST_STREAM frames).
The session failure callback is completed only when all the stream failure
callbacks have completed, to ensure that a GOAWAY frame is processed after
all the RST_STREAM frames.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-09 13:15:05 +02:00
Chris Walker 7c1d290d89
Added Jetty 11 to version matrix 2020-06-06 13:42:29 -05:00
Joakim Erdfelt eac4187a29
Merge pull request #4940 from eclipse/jetty-9.4.x-4939-accept_queue_size_docs
Fixes #4939 - acceptorQueueSize [sic]
2020-06-04 14:01:54 -05:00
Joakim Erdfelt c75f1b3888
Adding note to Example code about it not being secure
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-04 12:00:48 -05:00
Simone Bordet 029470c5dc Fixes #4939 - acceptorQueueSize [sic]
acceptorQueueSize -> acceptQueueSize.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-04 18:31:40 +02:00
Simone Bordet b904a5cc85 Do not assume the ByteBuffer has a backing byte array.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-06-04 11:49:42 +02:00
Lachlan Roberts 38f56f5973 make some test methods public to fix build
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-06-04 09:26:35 +10:00
Greg Wilkins ff8ae56fa9
Issue #4936 response buffer corruption (#4937)
* Issue #4936 - Adding LargeHeaderTest to replicate issue

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #4936 - Updating LargeHeaderTest to use ServerConnector

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #4936 - Fail LargeHeaderTest if client detects issues.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

* Issue #4936 large response header buffer corruption

If the response buffer is too large, the header buffer was released
but not nulled, then an exception thrown, which again released the
not nulled buffer.  The buffer thus ends up in the buffer pool twice!

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

* Issue #4936 large response header buffer corruption

removed old comment

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

Co-authored-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-06-03 22:54:12 +02:00
Joakim Erdfelt 2834f93447
Merge pull request #4935 from lorban/jetty-9.4.x-4877-fix-PathMappings-get
#4877 fix PathSpec long-standing bugs and shortcomings
2020-06-03 11:46:38 -05:00
Ludovic Orban e43c98f08d Signed-off-by: Ludovic Orban <lorban@bitronix.be> 2020-06-03 17:58:01 +02:00
Ludovic Orban 6c62157865 Signed-off-by: Ludovic Orban <lorban@bitronix.be> 2020-06-03 16:30:26 +02:00