1451 Commits

Author SHA1 Message Date
Greg Wilkins
1e703e8368 Merge branch 'jetty-9.4.x' into jetty-9.4.x-2695-hpack-compliance 2018-07-12 11:07:36 +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
lachan-roberts
e05c11ae30 Changing default Http headerCacheSize from 512 to 4096
Signed-off-by: lachan-roberts <lachlan@webtide.com>
2018-07-10 10:39:45 +10:00
Greg Wilkins
09eb303d2b WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 15:28:05 +00:00
Greg Wilkins
cb6c582333 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 15:24:55 +00:00
Greg Wilkins
b42017b942 WIP
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-07-08 14:44:38 +00:00
Simone Bordet
4f1dd352d6
Issue #2468 - Remove SoLinger. (#2644)
* Issue #2468 - Remove SoLinger.

For non-blocking sockets, StandardSocketOptions#SO_LINGER javadocs
report that the behavior is undefined. In JDK 11 setting SoLinger
for non-blocking sockets will be ignored.

As such, there is no point in allowing SoLinger to be configured
in Jetty that only uses non-blocking sockets.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-06-09 13:21:24 +02:00
Simone Bordet
fbcc752ad7
Fixes #2631 - Buffering capacity exceeded for HEAD requests with large Content-Length. (#2640)
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-06-08 17:48:58 +02:00
Joakim Erdfelt
3932b11e64 Merge remote-tracking branch 'origin/release-9.4.11' into jetty-9.4.x 2018-06-07 14:31:24 -05:00
Lachlan
d926f04217 Fixes #2594 - Fix failing tests in SaveOptimizeTest due to timing issues (#2608)
Tests in SaveOptimizeTest were checking if the last time the SessionData had been saved was greater than it was before
if the second save occured on the same millisecond as the first it failed the assertion
now counting how many times the SessionData has been saved instead of when it was saved

Added memory barriers to TestContextScopeListener and TestSessionDataStore as they are being accessed from multiple different threads in the test

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-06-07 14:58:35 +02:00
Greg Wilkins
1f1a5cb064
Merge pull request #2610 from lachlan-roberts/jetty-9.4.x-issue-2592-ServerTimeoutTest-testAsyncWriteIdleTimeoutFires
Issue #2592 - fix for ServerTimeoutTest.testAsyncWriteIdleTimeoutFires [HTTP] on windows
2018-06-06 08:24:07 +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
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
Lachlan Roberts
1bf5128e6d Fixes #2592 - changes to fix ServerTimeoutsTest.testAsyncWriteIdleTimeoutFires[transport: HTTP] on windows
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-05-31 19:44:51 +10:00
Lachlan Roberts
f9d474ad66 Merge remote-tracking branch 'eclipse/jetty-9.4.x' into jetty-9.4.x-stackTraceRemoval 2018-05-30 08:26:45 +10:00
Greg Wilkins
436c00b0af Fixed #2585
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-29 15:48:53 +02:00
Greg Wilkins
4f20447a5a Fixed #2585
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-29 14:58:05 +02:00
Greg Wilkins
2bcc528920 expand spruious tabs in java sources
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-29 10:40:09 +02:00
Lachlan Roberts
69aaabac24 fixes to printed exception stack traces in tests
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-05-29 17:55:14 +10:00
Greg Wilkins
252ab9facf
Jetty 9.4.x 2550 coalesce ranges (#2551)
Issue #2550 coalesce ranges

Author: Lachlan Roberts <lachlan@webtide.com>
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2018-05-18 08:45:54 +10:00
Greg Wilkins
aa97518d0b Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2018-05-17 08:27:45 +10:00
Greg Wilkins
be8ff431a4 Merge remote-tracking branch 'origin/jetty-9.2.x' into jetty-9.3.x
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-17 08:16:39 +10:00
Greg Wilkins
a285deea42 Issue #2529 RFC2616 vs RFC7230 cleanup
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-17 08:00:53 +10:00
Simone Bordet
d4144f2863 Fixes #2518 - How to handle 100-continue responses that don't fire onComplete callback.
HttpClient was confused by servers that responded
with two 100 Continue in the same HTTP conversation.

Now, whether the 100 Continue response has been handled
already is stored per-request, not per-conversation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-09 22:33:27 +02:00
Simone Bordet
67a3497755 Code cleanups.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-09 22:33:27 +02:00
Simone Bordet
da0b12a20b Restored tests that were ignored by mistake.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-05-09 09:36:06 +02:00
olivier lamy
6451c41aff add one more test for hazelcast sessiom, simplify hazelcast instance used for testing as we do not need multicasting
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-05-06 09:55:31 +10: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
Greg Wilkins
e59d6fa2c0
Support root base or home for quickstart #2446 (#2447)
* Support root base or home for quickstart #2446

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

* Issue #2446 - Root as base for quickstart

+ Adding more tests for differences we have to resolve
  with windows vs linux root path differences.
  and URI's that have an authority vs those without an authority.

  without authority examples:

  file:/code/
  file:/C:/code/

  with authority examples:

  file:///code/
  file:///C:/code/

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

* Using the canonical URI passes all the tests on linux, but I still have some concerns with the whole approach

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

* minor cleanups

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

* Handle windows URIs

Because a windows like `file:///F:/` has a path of `/F:/`, then it is OK to strip the trailing `/`, so the
expected normalized value can be `file:///F:`.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2018-05-03 09:56:08 +10:00
Jan Bartel
5515e13649
Issue #2427 Stop and start session idle timer (#2466)
* Issue #2427 Stop and start session idle timer

Signed-off-by: Jan Bartel <janb@webtide.com>
2018-05-03 08:05:26 +10:00
Jan Bartel
0e971e07d6
Issue #2274 Fix timing in CreationTest and other fixes (#2489)
Signed-off-by: Jan Bartel <janb@webtide.com>
2018-05-01 09:59:53 +10:00
olivier lamy
781cf076f7 compact syntax :-)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-20 18:59:12 +10:00
olivier lamy
b90f6de54e no need to create different map per test as we clear it
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-20 18:59:12 +10:00
olivier lamy
d84cac1be7 no need of sources jar for test jars will save some io...
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-19 10:27:18 +10:00
Olivier Lamy
f36eba4577
class.newInstance is deprecated #2435 (#2437)
* Class.newInstance() is deprecated in Java 9+ #2435

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-17 19:07:20 +10:00
olivier lamy
5f2306c9cd add a profile to run all tests even those disable with some jdks
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-14 13:03:50 +10:00
olivier lamy
ffa270b6c8 disable failing tests for jdk11
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-13 21:49:02 +10:00
olivier lamy
f6268ec919 add jdk10 profile to disable some tests
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-04-06 11:04:27 +10:00
Greg Wilkins
c41b6b7aab
Merge pull request #2332 from eclipse/jetty-9.4.x-1027-Multipart
## SearchPattern
New class which does a fast search for patterns within strings and arrays of bytes using an implementation of the Boyer–Moore–Horspool algorithm. This was written to be used in the new MultiPartParser class to search for delimeter boundaries.

## MultiPartParser
New class which uses the SearchPattern to parse a MultiPart Mime given a ByteBuffer. Written in a non-blocking style so can be used asynchronously (although not currently be being used this way).

## MultiPartFormInputStream
New class which uses the MultiPartParser to parse a MultiPart Mime input stream into a Collection of Parts. This class is in org/eclipse/jetty/http and is designed to replace org/eclipse/jetty/util/MultiPartInputStreamParser.

## MultiPartInputStreamParser and Non Compliances
This class has been deprecated and replaced by org.eclipse.jetty.http.MultiPartFormInputStream. It accepts formats non compliant with the RFC that the new MultiPartFormInputStream does not accept. When this occurs violations are recorded by the method getNonComplianceWarnings().

## MultiParts
New interface to allow switching between the different implementations. This allows MultiParts to function in two different modes. The LEGACY implementation using the UTIL parser which may parse forms containing non compliances with the RFC, and the RFC7578 implementation using the new and faster HTTP parser. This file contains the implementations of MultiParts for HTTP and UTIL parsers as nested classes which are used by Request.

## Request
Changed to use the new MultiParts interface instead of the MultiPartInputStreamParser class. with a method called newMultiParts which will construct a MultiPart using one of the HTTP or UTIL implementations depending on what compliance mode is set.

## Jetty Test Webapp Dump Servlet
Code added to display parts while running the dump test webapp if MuliPart form is submitted.

## MultiPartBenchMark
JMH Benchmark of the HTTP multipart parser vs the UTIL multipart parser.

testLargeGenerated parses a 10MB file of random binary data.
testParser parses a series of small multipart forms captured by a browser.
```
# Run complete. Total time: 00:02:09

Benchmark                              (parserType)  Mode  Cnt  Score   Error  Units
MultiPartBenchmark.testLargeGenerated          UTIL  avgt   10  0.252 ± 0.025   s/op
MultiPartBenchmark.testLargeGenerated          HTTP  avgt   10  0.035 ± 0.004   s/op
MultiPartBenchmark.testParser                  UTIL  avgt   10  0.028 ± 0.005   s/op
MultiPartBenchmark.testParser                  HTTP  avgt   10  0.015 ± 0.006   s/op
```
2018-04-04 17:30:36 +10: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
Lachlan Roberts
4a0e4294b9 fixed path of MultiPartFormDataCompliance in jetty.xml
added some debug info
changes to jetty test webapp to display parts from multi-part forms

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2018-04-04 11:18:57 +10:00
Jan Bartel
b4e400f236 Jetty 9.4.x 2231 refactor session tests (#2382)
* Issue #2231 WIP

* Issue #2231 Add tests for FileSessionDataStore and MongoSessionDataStore.

* Issue #2231 create unit tests for every SessionDataStore

Signed-off-by: Jan Bartel <janb@webtide.com>

* Issue #2231 Refactor session tests

Signed-off-by: Jan Bartel <janb@webtide.com>

* Issue #2231 Refactor and cleanup session tests.

Signed-off-by: Jan Bartel <janb@webtide.com>

* hazelcast tests faster

Signed-off-by: olivier lamy <olamy@webtide.com>

* make hazelcasts tests even faster

Signed-off-by: olivier lamy <olamy@webtide.com>

* cleanup comments

Signed-off-by: olivier lamy <olamy@webtide.com>

* run mongodb test in embdedded mode

Signed-off-by: olivier lamy <olamy@webtide.com>

* mongodb embedded test enabled per default

Signed-off-by: olivier lamy <olamy@webtide.com>

* Issue #2231 more session tests

Signed-off-by: Jan Bartel <janb@webtide.com>

* fix mongodb embedded tests

Signed-off-by: olivier lamy <olamy@webtide.com>

* cleanup code

Signed-off-by: olivier lamy <olamy@webtide.com>

* use Logger rather than System.err.println

Signed-off-by: olivier lamy <olamy@webtide.com>

* Issue #2231 Add test for DefaultSessionCache

Signed-off-by: Jan Bartel <janb@webtide.com>

* Issue #2231 Redisable mongo tests by default.

Signed-off-by: Jan Bartel <janb@webtide.com>

* fix issue with empty local repo build

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

* jenkins should run mongodb tests

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

* build this plugin last so we should not hit the maven invoker plugin

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

* build test first for this one

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

* use invoker plugin 3.0.2-SNAPSHOT as there is a fix for https://issues.apache.org/jira/browse/MINVOKER-191

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

* temporary use of apache snapshots repository because of maven-invoker-plugin 3.0.2-SNAPSHOT

Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2018-03-28 20:14:15 +10: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
e651d2d69b
Fixes #2350 - Support multiplexing in RoundRobinConnectionPool. (#2352)
Introduced ConnectionPool.Multiplexable for connection pools that support multiplexing.
Reworked RoundRobinConnectionPool to support multiplexing.
Moved tests to test RoundRobinConnectionPool with both HTTP/1.1 and HTTP/2.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2018-03-21 16:29:30 +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
Joakim Erdfelt
3f17f7853f
Merge pull request #2281 from joakime/issue-2278-dist-test-dep
Issue #2278 - making distribution pom not require tests
2018-03-15 04:45:16 -05:00