Commit Graph

1773 Commits

Author SHA1 Message Date
Simone Bordet c69c7b29c7 Fixes #1878 - Handle 100 Continue response without Expect header. 2017-10-09 12:08:24 +02:00
Simone Bordet 22e9c5a7bf Merged branch 'jetty-9.4.x' into 'master'. 2017-10-03 10:19:41 +02:00
Simone Bordet a4d7b4c4dc Removed unnecessary code. 2017-10-03 10:19:06 +02:00
Simone Bordet bee383c894 Merged branch 'jetty-9.4.x' into 'master'. 2017-10-03 01:22:35 +02:00
Simone Bordet 3b98a6c000 Issue #1851 - Improve insufficient thread warnings/errors.
ThreadBudget -> ThreadPoolBudget.
Added selectors to the leased threads.
2017-10-02 13:40:31 +02:00
Simone Bordet 17a1484143 Code cleanups.
Removed unnecessary imports and fixed typos.
2017-10-02 11:43:45 +02:00
Greg Wilkins 1ce96be964 Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-09-28 07:58:15 +10:00
Greg Wilkins 7d98cbb870 Issue #1851 Improve insufficient thread warnings/errors
Squashed commit of the following:

commit 1d9e8e4b4d53898cb6435f67529347bd2ba82cf0
Merge: 7280594 55b0f10
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Sep 28 07:20:37 2017 +1000

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-1851-ThreadBudget

commit 7280594a0058538b603ad35625713a79830e9b93
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Sep 27 22:48:58 2017 +1000

    fixed headers

commit f962f18e5b098ae40846ee3832736ee4650aed84
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Sep 27 18:12:33 2017 +1000

    Issue #1851 added reset

commit a63894de284c8d8dc5ed031f1f6e0fccaf6c7715
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Sep 27 18:08:53 2017 +1000

    Issue #1851 improved test

commit 8bcc460dc63273165305a7adcb88e991e30de4b7
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Sep 27 18:03:47 2017 +1000

    Issue #1851 Improve insufficient thread warnings/errors

    Refactor approach to use Leases, to handle multiple executors

commit fe4be5f56594f342ab5c2e6c886397d9b4fe9c14
Merge: abc5eac a248d38
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Sep 27 15:37:56 2017 +1000

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-1851-ThreadBudget

commit abc5eac2b73d306a91b28ef4db778455095a5bdb
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Sep 27 12:20:03 2017 +1000

    Issue #1851 Improve insufficient thread warnings/errors

    Created a ThreadBudget class that can be used to warn/error for
    registered and unregistered allocations of threads.

    The server on doStart does an unregistered check of all its components that
    implement the Allocation interface.

    The client will register itself as an Allocation if a shared Executor is used.
2017-09-28 07:35:05 +10:00
Simone Bordet d0d52c8ba1 Merged branch 'jetty-9.4.x' into 'master'. 2017-09-25 13:05:00 +02:00
Simone Bordet 6aafc3b792 Fixes #1845 - Allow null User-Agent in HttpClient. 2017-09-25 13:03:26 +02:00
Greg Wilkins 1b7ebf5599 Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-09-23 00:22:57 +10:00
Greg Wilkins a6f02c26a8 Issue #1509 Review GZIPContentDecoder buffer pooling
A temporary fix that uses a hueristic to limit the pool size.

Perhaps such a hueristic should be the default for the queue size of all ByteBufferPools, as infinite queue size is rarely going to be a good thing?

Also, I think all the pools need to have better javadoc, plus an upper/lower bound of the size of buffer that they will pool, as gzip will tend to ask for lots of random sized buffers to put the expanded data into, some could be very
large and unlikely to be reused.
2017-09-21 14:29:58 +10:00
Simone Bordet aa4a77794e Issue #212 - HttpClient to support pluggable AuthenticationStore.
AuthenticationStore must be initialized eagerly.
2017-09-14 13:00:52 +02:00
Simone Bordet ce9be291d3 Fixes #212 - HttpClient to support pluggable AuthenticationStore. 2017-09-14 11:29:39 +02:00
Simone Bordet c402f8d5fa Fixed test after #1804. 2017-09-11 17:03:22 +02:00
Simone Bordet b078c910a7 Code cleanup: replaced anonymous inner classes with lambdas. 2017-09-11 17:02:32 +02:00
Joakim Erdfelt 651f422034 Merge branch 'jetty-9.4.x' to 'master' 2017-08-18 10:54:58 -07:00
Simone Bordet 6c44538bb6 Fixes #1750 - PoolingHttpDestination creates ConnectionPool twice.
Now destinations needs to be started in tests, take 2.
2017-08-18 19:36:27 +02:00
Simone Bordet 7390707e07 Fixes #1750 - PoolingHttpDestination creates ConnectionPool twice.
Now destinations needs to be started in tests.
2017-08-17 16:37:13 +02:00
Simone Bordet 3b805123b8 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-08-17 11:47:56 +02:00
Simone Bordet bcf96517bd Fixes #1750 - PoolingHttpDestination creates ConnectionPool twice. 2017-08-17 11:42:56 +02:00
Simone Bordet c395097812 Fixes #1749 - Dump HttpDestination exchange queue.
Improved code.
2017-08-17 11:42:27 +02:00
Simone Bordet 2bfe6fa964 Fixes #1749 - Dump HttpDestination exchange queue. 2017-08-17 11:15:23 +02:00
Joakim Erdfelt 1311052b15 Cleaning up state of branch to match the original jetty-9.4.x
+ Does not include changes to /jetty-cdi/
+ Does not include changes to /jetty-websocket/ for javax.websocket-1.1
2017-08-08 09:47:04 -07:00
Simone Bordet b1b569bd23 475546 - ClosedChannelException when connecting to HTTPS over HTTP proxy with CONNECT.
Not closing the connection if the request method is CONNECT.
2017-08-08 09:15:49 -07:00
Simone Bordet 8cfd971f92 JavaDoc clarification. 2017-08-08 09:15:14 -07:00
Simone Bordet 191b6e044f Fixes #1656 - Improve configurability of ConnectionPools.
Introduced ConnectionPool.Factory and HttpClientTransport.connectionPoolFactory.
This allows applications to create a ConnectionPool given the HttpDestination.
2017-08-08 09:14:19 -07:00
Simone Bordet be970de6db 475546 - ClosedChannelException when connecting to HTTPS over HTTP proxy with CONNECT.
Not closing the connection if the request method is CONNECT.
2017-08-02 22:29:28 +02:00
Simone Bordet 552b7c3e0e Merged branch 'jetty-9.4.x' into 'master'. 2017-07-24 11:19:04 +02:00
Simone Bordet 7b84df341f JavaDoc clarification. 2017-07-24 10:45:13 +02:00
Greg Wilkins f1146856ac Issue #1676 remove deprecated methods on HttpFields 2017-07-19 10:45:21 +02:00
Joakim Erdfelt a9c329859d Merge remote-tracking branch 'origin/jetty-9.4.x' 2017-07-12 13:18:12 -07:00
Simone Bordet 9d0bcdbce4 Fixes #1656 - Improve configurability of ConnectionPools.
Introduced ConnectionPool.Factory and HttpClientTransport.connectionPoolFactory.
This allows applications to create a ConnectionPool given the HttpDestination.
2017-07-04 11:24:53 +02:00
Greg Wilkins 380b7d21e9 Issue #1503 Optionally strip IPv6. Default true 2017-06-06 16:58:23 +02:00
Simone Bordet 1ac103b6ce Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-05-17 13:16:21 +02:00
Simone Bordet d53af5d737 Fixes #523 - TLS close behaviour breaking session resumption.
Since requests cannot be connection delimited, don't call
sslEngine.closeInbound() on the server.

On the client, added a configuration parameter to allow missing
TLS Close Message, since many servers do that.

Introduced SslConnection.allowMissingCloseMessage so that it
throws in case of truncation attacks.
2017-05-17 13:07:21 +02:00
Simone Bordet e7ac447d63 Fixes #1452 - Add tests for [want|need]ClientAuth. 2017-04-05 15:27:57 +02:00
Simone Bordet 7fc3dac5f3 Removed truststore.jks, not needed. 2017-04-05 15:27:57 +02:00
Simone Bordet c285d6f8bb Fixes #612 - Support HTTP Trailer.
Added support on both the server and the client, for HTTP/1 and HTTP/2.
2017-04-03 22:25:50 +02:00
Joakim Erdfelt 59c31a40e3 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-14 12:07:57 -07:00
Joakim Erdfelt f293f637c8 Issue #1394 - fix default character encoding for surefire testing 2017-03-13 11:10:10 -07:00
Joakim Erdfelt 01d539e2be Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-09 14:20:19 -07:00
Joakim Erdfelt d2e35e239a Windows Test Issue
+ Changing from @Test(expect=<exception>) to
  @Rule ExpectedException for ...
  * no exception occuring when one is expected is a test failure
  * wrong exception is a test failure
  * wrong cause is a test failure
2017-03-09 06:51:57 -07:00
Greg Wilkins 0a2da4822d Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-06 14:20:23 +11:00
Simone Bordet affeb67f1a Issue #1375 - Support pushed resources in HTTP client.
Implemented in the non-API HttpRequest class.
2017-03-05 19:01:08 +01:00
Carter Kozak 1a2bb90465 Issue #1309 Client GZIPContentDecoder uses client ByteBufferPool
Previously the GZIPContentDecoder would allocate a new buffer for
each gzip encoded response.

Signed-off-by: Carter Kozak <c4kofony@gmail.com>
2017-02-07 09:53:39 -05:00
Simone Bordet 7923032582 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-02-02 00:24:51 +01:00
Greg Wilkins 461c6082ae Issue #1296 - Introduce HTTP parser "content complete" event. 2017-02-01 23:54:36 +01:00
Simone Bordet 0c8273f2ca Happy New Year 2017. 2017-01-19 19:26:41 +01:00
Simone Bordet 07838b057f Happy New Year 2017. 2017-01-19 18:54:03 +01:00
Simone Bordet 347c48d657 Revert "resolve merge and update license headers"
This reverts commit 53b31b03dd, reversing
changes made to 4565c186d7.
2017-01-19 18:26:43 +01:00
Jesse McConnell 53b31b03dd resolve merge and update license headers 2017-01-19 09:33:16 -06:00
Jesse McConnell ce3e6dafec update license headers to 2017 2017-01-19 09:30:00 -06:00
Simone Bordet 3883b8cbb5 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-16 19:20:24 +01:00
Simone Bordet ddc63066fc Fixes #1259 - HostnameVerificationTest.simpleGetWithHostnameVerificationEnabledTest is broken.
When a fill() triggered by a flush() throws, now the write flusher is
failed rather than completed.
This ensures that both the read and the write side see the same
exception, rather than the write side seeing a ClosedChannelException.
2017-01-16 19:05:09 +01:00
Greg Wilkins 217d7af3d5 Issue #1259 ignoring broken test 2017-01-13 15:25:22 +11:00
Greg Wilkins 20ac50480c Re added the ERROR handling for #1242 2017-01-12 09:06:22 +11:00
Simone Bordet bc86ce4d09 Fixed tests and suppressed expected exceptions. 2017-01-12 09:05:09 +11:00
Greg Wilkins 0f3f051f0e Revert "Fixed tests and suppressed expected exceptions."
This reverts commit 77b1617fdd.
2017-01-12 08:55:35 +11:00
Simone Bordet 77b1617fdd Fixed tests and suppressed expected exceptions. 2017-01-10 15:54:37 +01:00
Simone Bordet d0930e1b9a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-10 15:06:45 +01:00
Simone Bordet b8986d5812 Fixes #1228 - Internal error during SSL handshake.
Added a guard to avoid unwrapping during handshake if SSLEngine is
already closed.
2017-01-10 15:05:40 +01:00
Simone Bordet df51ebc029 Fixed test broken by #1172. 2016-12-22 11:14:48 +01:00
Greg Wilkins 68c8db635e ignored bad test 2016-12-22 18:27:15 +11:00
Simone Bordet 9c68bd44fa Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-12-20 16:17:14 +01:00
Simone Bordet a15f8964c4 Cleanups for #1172. 2016-12-20 16:15:35 +01:00
Konstantin Gribov 9657be1c72 Fixes #1171 - Jetty-client throws NPE for request to IDN hosts only when `HttpClient#send(...)` is called.
Added early check for null host when creating requests in HttpClient.
Added test for incorrect IDN redirect.

Signed-off-by: Konstantin Gribov <grossws@gmail.com>
Reviewed-by: Simone Bordet <simone.bordet@gmail.com>
2016-12-20 16:08:48 +01:00
Simone Bordet dd3a73e57a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-12-14 11:19:49 +01:00
Joakim Erdfelt 9b609e0f6d Issue #1161 - Leaving CookieStore alone HttpClient and WebSocketClient are stopped
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2016-12-14 09:00:12 +01:00
Joakim Erdfelt 646a411746 Fixing onUpgradeFrom buffer flip issue 2016-12-01 13:07:28 -07:00
Greg Wilkins 2ef23a6725 Issue #572
Improved to the toString and dump output of connections, endpoints and channel to assist with debugging
made the SSL callbacks and runnables Invocable to avoid thread starvation.
2016-11-23 16:58:35 +11:00
Simone Bordet 7716ada9dd Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-11-07 19:26:18 +01:00
Simone Bordet f82aa03300 Fixes #1078 - DigestAuthentication should use realm from server, even if unknown in advance. 2016-11-07 19:25:06 +01:00
Simone Bordet a51f77c390 Fixed compilation failure. 2016-11-04 12:19:48 +01:00
Simone Bordet 9760e0d4cd Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-11-04 12:10:10 +01:00
Simone Bordet 846d560b44 Fixes #905 - Jetty terminates SSL connections too early with Connection: close.
Requests with "Connection: close" are now closed only after the
request/response exchange has been terminated.
2016-11-04 12:09:44 +01:00
Simone Bordet 605aadba59 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-11-04 09:54:36 +01:00
Simone Bordet d18b900b75 Fixes #1069 - Host header should be sent with HTTP/1.0. 2016-11-04 09:53:22 +01:00
Greg Wilkins 5395cfd021 Issue#1066 Simplify HttpGeneration
HTTP requests cannot be close limited
2016-11-04 08:29:49 +11:00
Simone Bordet 3c3be877c6 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-11-03 14:22:23 +01:00
Simone Bordet fba901d156 Issue #1064 - HttpClient sets chunked transfer-encoding.
Fixed test assertion.
2016-11-03 14:21:40 +01:00
Simone Bordet 568d56caee Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-11-03 11:44:59 +01:00
Simone Bordet 7e903cfc6b Fixes #1064 - HttpClient sets chunked transfer-encoding.
Replaced the hint that there is a body by setting the Content-Type
header rather than the Transfer-Encoding header.
2016-11-03 11:40:45 +01:00
Greg Wilkins 6781a949b1 Issue#1066 Simplify HttpGeneration
Reduce the transformations needed on header fields, so they can be more often
set directly and no need to split and recombine.

The Content-Length field is added IF it is needed for framing or if it was explicitly set

The Transfer-Encoding: chunk field is used only as a hint that there is content.

Connection fields are used as is, but are checked for close and keep-alive
2016-11-03 16:55:33 +11:00
Simone Bordet f2061cbe60 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-10-06 16:33:58 +02:00
Sergiu Prodan 407111a796 Issue #295 Ensure Jetty Client use of Inflater calls .end() to avoid memory leak
Signed-off-by: Sergiu Prodan <p.sergiu92@gmail.com>
2016-10-06 16:12:53 +02:00
Sergiu Prodan f8b2979a8f Issue #295 Ensure Jetty Client use of Deflater calls .end() to avoid memory leak (#986)
* Issue #295 Ensure Jetty Client use of Inflater calls .end() to avoid memory leak

Signed-off-by: Sergiu Prodan <p.sergiu92@gmail.com>
2016-10-06 16:10:37 +02:00
Greg Wilkins 98bb582d45 Jetty 9.4.x http interceptor #382
* Issue #382 Request compression

Added identity HttpInput.Interceptor
Moved GZIPContentDecoder to jetty-http
Reworking interceptor and GZIPContentDecoder to avoid data copies
Completed and tested GZIPContentDecoder
Implemented GzipHttpInputInterceptor
updated GzipHandler.java
updated gzip module
use common GZIP decoder
Gzip Bomb
handle read() after empty interception
2016-10-05 13:49:20 +11:00
Simone Bordet 04604166bc Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-26 15:04:47 +02:00
Simone Bordet 94137583f8 Added assumption to make test more robust. 2016-09-26 15:04:21 +02:00
Simone Bordet 716c595cdf Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-26 12:20:22 +02:00
Simone Bordet 777ed6ad64 Fixes #277 - Proxy servlet does not handle HTTP status 100 correctly.
Introduced overridable ContinueProtocolHandler.onContinue(), and
making sure that proxy servlets use a ContinueProtocolHandler
subclass to intercept 100 Continue responses from the server, so that
they can relay it properly to the client.
2016-09-26 12:05:03 +02:00
Simone Bordet f3751da475 Fixes #955 - Response listeners not invoked when using Connection.send(). 2016-09-23 17:04:11 +02:00
Simone Bordet 9551d0f62b Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-22 21:57:12 +02:00
Andriy Rosa a9ef53b6d0 Fix HttpClient#copyRequest (#937)
Make HttpClient#copyRequest to copy custom headers with the same values.

When original request contains some custom header, say `X-Custom`, than
HttpHeader object within a HttpField will be `null`. In such case
`newRequest.getHeaders().contains(field.getName(), value)` check returns
true when there are 2 and more custom headers with the same value. As a result
not all the custom headers are being copied to the new request.

Signed-off-by: Andriy Rosa <andriyrosa@gmail.com>
2016-09-22 21:27:59 +02:00
Simone Bordet 61cd8d5379 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-14 18:13:12 +02:00
Simone Bordet ed14641e87 Made test more robust. 2016-09-14 18:12:34 +02:00
Simone Bordet 5ec60a30ed Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-14 16:44:39 +02:00
Simone Bordet 571b0c74c5 Implemented PromiseWrapper's succeeded() and failed() methods. 2016-09-14 14:01:30 +02:00
Simone Bordet 448100ff80 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-06 12:02:01 +02:00
Simone Bordet 6d485b2777 Fixes #902 - Expect: 100-Continue does not work with HTTP/2.
Improved handling of the 100 status code in both client and server.
2016-09-06 12:01:24 +02:00
Greg Wilkins 5ab9846ac5 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-08-31 20:32:54 +10:00
Greg Wilkins f856107301 Merge remote-tracking branch 'origin/jetty-9.2.x' into jetty-9.3.x 2016-08-31 19:05:57 +10:00
Greg Wilkins 0155ae761c Issue #880 Improve IPv6 support
For #880 added the HostPort class, which was used to fix #878, #879, #884 and #886
2016-08-31 16:46:11 +10:00
Simone Bordet a4a97a0257 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-17 22:11:44 +02:00
Simone Bordet bef4b56fc0 Fixes #806 - Jetty HttpClient authentication - missing any realm option.
Introduced Authentication.ANY_REALM constant to use when specifying
the realm in concrete subclasses, so that the realm match is skipped.
2016-08-17 22:10:59 +02:00
Simone Bordet c42212d7b0 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-12 00:08:12 +02:00
Simone Bordet 7041e5102d Fixes #827 - HTTPClient fails connecting to HTTPS host through an HTTP proxy w/authentication.
Using https scheme in CONNECT request if the proxy is secure.
A Proxy must not match its own address.
Resolved correctly request URI in case of CONNECT requests.
2016-08-11 19:25:41 +02:00
Simone Bordet 9b6c9438a7 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-10 18:37:24 +02:00
Simone Bordet 2eec2251ee Fixes #827 - HTTPClient fails connecting to HTTPS host through an HTTP proxy w/authentication.
Only successful (200) responses to a CONNECT behave like HEAD and
implicitly have no body.
2016-08-10 18:36:27 +02:00
Simone Bordet 823ba4add6 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-21 18:15:38 +02:00
Simone Bordet 6a15bbfb2b Issue #751 - Remove usages of ArrayQueue. 2016-07-21 17:55:48 +02:00
Simone Bordet 6adb5eb031 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-15 18:12:02 +02:00
Simone Bordet a3b5e7ebb7 Added guards against NPE in case HttpField.getValue() returns null. 2016-07-15 15:45:50 +02:00
Simone Bordet 0d5fb1812e Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-22 11:27:56 +02:00
Simone Bordet 72393bc666 Fixes #659 - CONNECT request fails spuriously.
Fixed by properly returning true from messageComplete() in case of
a 101 response or a 200 CONNECT response.
2016-06-22 11:27:28 +02:00
Simone Bordet a07461f4bd Code cleanups. 2016-06-22 11:27:28 +02:00
Simone Bordet b3fda0b733 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-20 23:11:16 +02:00
Simone Bordet 7ef22c8ebd Fixes #648 - Problem using InputStreamResponseListener to handle HTTP/2 responses.
The fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=484446
reimplemented InputStreamResponseListener using callbacks rather than
blocking waits.

However, HTTP/2 behaves a little differently than HTTP/1.
Where in HTTP/1 until the callback was completed no further calls to
onContent() were made, with HTTP/2 additional calls are made until
the flow control window is exhausted.

For this reason InputStreamResponseListener must queue content chunks
rather than dealing only with one chunk at a time.
2016-06-20 23:10:44 +02:00
Simone Bordet a565b6fa83 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-14 11:09:02 +02:00
Simone Bordet 35077c9803 Increased timeouts to avoid failures on slower machines. 2016-06-14 11:08:38 +02:00
Greg Wilkins 86e5b1cf9b Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-06-08 16:48:50 +10:00
Greg Wilkins d458d41632 more generous unit test timeouts 2016-06-08 16:48:19 +10:00
Simone Bordet 85b3459af5 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-03 18:03:29 +02:00
Simone Bordet c05e265c5b Moved scheme checks to the right place. 2016-06-03 17:57:59 +02:00
Greg Wilkins 98c328fb23 Jetty 9.4.x 572 (#614)
* Issue #572 Scheduling Strategy Deadlocks

Implemented dual strategy idea from #572 discussion

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

* fixed http2 strategy choice

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

* code cleanups

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

* clean up seelctor actions/products

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

* cleanups
2016-06-03 09:07:00 +10:00
Greg Wilkins e1b551c2ae Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-06-02 08:04:56 +10:00
Simone Bordet 059fbaa1d6 Removed @Ignore from a passing test. 2016-06-01 11:56:49 +02:00
Simone Bordet 8956245026 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-01 10:48:57 +02:00
Greg Wilkins 7d6c05b5c0 Issue #610 Ignore failing test 2016-06-01 17:46:04 +10:00
Simone Bordet b912c700ee Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-25 19:27:46 +02:00
Simone Bordet f3a805887e Fixes #542 - Support Connection.Listener bean on clients.
Introduced ClientConnectionFactory.customize() to look for
Connection.Listener beans.
ClientConnectionFactory implementation calls customize() when they
create a Connection instance, so the Connection.Listener beans are
registered onto the Connection.
2016-05-25 19:27:08 +02:00
Simone Bordet 016a7b72a1 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-24 16:10:00 +02:00
Simone Bordet ddddc3a675 Fixes #574 - Introduce a TLS handshake completed listener.
Introduced class SslHandshakeListener that can be registered as a
bean in both the ServerConnector and in clients such as HttpClient
and HTTP2Client.

When creating SslConnection instances, the factory will query the
connector (client or server) for SslHandshakeListener beans and, if
present, will be added to the SslConnection.
2016-05-24 16:09:19 +02:00
Simone Bordet 5fe1ff697e Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-24 12:42:12 +02:00
Simone Bordet d73c60db14 Issue #464 - Improve reporting of SSLHandshakeException. 2016-05-24 11:15:18 +02:00
Simone Bordet b1ebcf9139 Using lambdas instead of anonymous inner classes. 2016-05-24 11:15:18 +02:00
Simone Bordet a37a0c18c3 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-19 15:49:14 +02:00
Simone Bordet 89531a81be Fixed test. 2016-05-19 15:48:50 +02:00
Simone Bordet 922319c3a3 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-12 19:30:50 +02:00
Simone Bordet e25cca33e7 Fixes #571 - AbstractAuthentication.matchesURI() fails to match scheme. 2016-05-12 19:03:52 +02:00
Simone Bordet cd2c2a6b98 Issue #560 - Jetty Client Proxy Authentication does not work with HTTP Proxy tunneling.
Small refactoring.
2016-05-12 19:03:18 +02:00
Simone Bordet 242b6b5f66 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-05-12 18:59:40 +02:00
Simone Bordet f3675dbad7 Fixes #560 - Jetty Client Proxy Authentication does not work with HTTP Proxy tunneling.
The issue was related to the fact that the proxy responded 407 with a
Connection: close header.

Because the endPoint underlying the original connection was closed,
it should not have been used as a tunnel.
Rather, the endPoint of the new CONNECT attempt (with the proxy
credentials) must be used for the tunnel.

Also partially backported the fix for #408.
2016-05-12 17:19:04 +02:00
Simone Bordet 1056536155 Moved HttpClientLoadTest to "tests" module to test all transports. 2016-05-06 17:10:46 +02:00
Simone Bordet e2f252f817 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-11 19:39:04 +02:00
Simone Bordet f0a1ccf4d3 Fixes #504 - HTTP/2 client transport cannot send request after idle timeout.
Made sure that the idle timeout mechanism notifies the destination
that the connection will close.

Also reviewed the close protocol to be: notify destination, then abort,
then close. In this way, HTTP/2 can send RST_STREAM before the
connection is closed.
2016-04-11 19:15:17 +02:00
Simone Bordet 11242ae1ec Fixes #503 - Wrong request-per-connection counting in MultiplexHttpDestination in case of failures. 2016-04-11 19:15:17 +02:00
Simone Bordet ac4ee8fec4 Ignoring tests that connect to external sites. 2016-04-11 19:15:17 +02:00
Simone Bordet 5aef3ba3e4 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-04 15:41:04 +02:00
Simone Bordet 5c147288ef Fixes #481 - Event response.success notified without waiting for content callback for HTTP/2 transport.
Fixed by notifying the response.success event only when the callback
is succeeded.
2016-04-04 15:40:25 +02:00
Simone Bordet 1806744bf7 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 22:04:44 +02:00
Simone Bordet 3fb06cca21 Issue #476 - HttpClient should not send absolute-form target with non HttpProxy.
Fixed test case.
2016-04-01 22:04:15 +02:00
Simone Bordet 68a465d7a3 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 19:50:26 +02:00
Simone Bordet aac9f70243 Fixes #476 - HttpClient should not send absolute-form target with non HttpProxy.
Now only sending absolute-form in case of HttpProxy.
2016-04-01 17:46:22 +02:00
Simone Bordet cdcde53c6b Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 14:44:50 +02:00
Simone Bordet ce04cadb79 Fixes #233 - Add message to idle TimeoutException. 2016-04-01 14:44:26 +02:00
Simone Bordet 1146bce95e Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 14:29:38 +02:00
Simone Bordet 4aa512e468 Issue #184 - Empty Realm for BasicAuthentication.
Fixed by allowing empty realms.
2016-04-01 14:29:11 +02:00
Simone Bordet 650587ec0a Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 12:48:09 +02:00
Simone Bordet c8fea46e8f Issue #450 - Client AuthenticationProtocolHandler sends request failures to response failure listener.
Fixed by properly forwarding response success in case only the
request failed.
2016-04-01 12:46:12 +02:00
Simone Bordet a97d29f54b Removed usages of deprecated Callback.Adapter. 2016-04-01 12:46:12 +02:00
Simone Bordet 3b5ed5a822 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-25 18:34:23 +01:00
Stéphane Martin 1c8b0869fd [Jetty-Client] fix: don't add host automaticaly on http2 request.
All google server answers bad request when Host field is filled with h2 protocol.

Change-Id: I9e16f8c9f56bc26df0b0a933cee0b3a3d6c31921
Signed-off-by: Stéphane Martin <stephane.martin@neotys.com>
2016-03-25 17:45:53 +01:00
Greg Wilkins acfa1268bc Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-03-24 12:58:06 +11:00
Greg Wilkins 8b228073e3 Issue #448 - RFC2616 Compliance Mode should track and report RFC7230 violations
Efficiency improvements
2016-03-24 11:37:39 +11:00
Greg Wilkins d287f6e6e0 Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-03-17 06:27:14 +11:00
Greg Wilkins 5da034db66 Issue #431
HttClientTest cleanup
2016-03-17 06:26:20 +11:00
Joakim Erdfelt 3624339ec6 Merge branch 'jetty-9.3.x' 2016-03-16 10:29:29 -07:00
Simone Bordet be7c50fa51 Fixes #409 (Http client authentication with proxy server)
Made BasicResult a public static class so that it can be used by
applications via AuthenticationStore.addAuthenticationResult().
2016-03-16 15:52:56 +01:00
Greg Wilkins 1c5a1fc6a2 Issue #431
Suppress stack traces from unit tests
2016-03-16 18:19:40 +11:00
Joakim Erdfelt dcfa0b8910 Merge branch 'jetty-9.3.x' 2016-03-15 07:49:28 -07:00
Simone Bordet 26f8deddf7 Introduced Callback.Nested.
Refactored code that was using nested callbacks and removed
unnecessary overrides now that we have default methods.
2016-03-15 15:24:44 +01:00
Simone Bordet 35758b6f87 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-11 11:32:32 +01:00
Simone Bordet 3f82886774 Issue #266 (jetty-client redirection process is aborted if redirect response have corrupt body)
Fixed by disabling content decode, since we are discarding the
content anway.
2016-03-11 11:31:39 +01:00
Simone Bordet 14c985802e Merged branch 'jetty-9.3.x' into 'master'. 2016-03-10 22:32:24 +01:00
Simone Bordet 2af81781cd Issue #258 (Http request to origin server over https proxy contains absolute URL)
Fixed by sending the request target in origin-form (and not in
absolute-form) when request is to a https server.
2016-03-10 22:01:17 +01:00
Simone Bordet 4039f00bda Issue #408 (Http client does not work on https with proxy)
Fixed by not considering authority-form targets to be URIs, so that
the request is correctly copied after a 407.
2016-03-10 16:10:45 +01:00
Simone Bordet e6c2c81bea Issue #417 (HttpClient: review support for OPTIONS *)
Implemented support for OPTIONS * HTTP/1.1 requests.
2016-03-10 16:10:45 +01:00
Simone Bordet ffbd817254 Issue #416 (Support HTTPS forward proxies)
Implemented. We were never checking HttpProxy.isSecure().
Now we do, and if so we wrap the connection factory with an SSL one.
2016-03-10 16:10:45 +01:00
Simone Bordet d0593ab046 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-08 11:56:14 +01:00
Simone Bordet 18b689b820 Code cleanups. 2016-03-08 11:55:54 +01:00
Simone Bordet 87ea5ac039 Fixed tests. 2016-03-08 11:55:19 +01:00
Simone Bordet 13f267bf8a Merged branch 'jetty-9.3.x' into 'master'. 2016-03-07 16:11:41 +01:00
Simone Bordet 8ad0944732 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-03-07 16:04:46 +01:00
Simone Bordet d36e5864db Issue #377 (HttpClient - No supported cipher suites leads to stuck requests)
Fixed by rethrowing the exception thrown by onOpen() so that the
SelectorManager can act appropriately.
2016-03-07 15:20:12 +01:00
Simone Bordet 815bc54f5d Improved failure reporting. 2016-03-07 10:35:07 +01:00
Simone Bordet 5fa6bf4c10 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-05 14:59:21 +01:00
Simone Bordet fb05062f0d Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-03-05 14:58:50 +01:00
Simone Bordet a4686bc6a4 Issue #353 (Jetty Client doesn't forward authentication headers with redirects when using proxy)
Fixed by making sure that URI matches take into account default HTTP
ports.
2016-03-05 13:29:31 +01:00
Simone Bordet bede684cac Merged branch 'jetty-9.3.x' into 'master'. 2016-03-03 08:21:26 +01:00
Simone Bordet 311c7466b0 Issue #386 (Explicit Authorization header is dropped when handling 407s)
Fixed by copying explicitly set authorization headers.
2016-03-03 08:20:55 +01:00
Simone Bordet 6d9b36c8a4 Issue #381 (HttpClient does not send the Authorization header with authenticating proxy)
Fixed by tracking correctly the conversation attributes for
authentication, and by applying both proxy authentication results and
server authentication results.
2016-03-02 18:02:20 +01:00
Simone Bordet 53e41d291f Merged branch 'jetty-9.3.x' into 'master'. 2016-03-01 16:32:03 +01:00
Simone Bordet a8bbe8749f Issue #353 (Jetty Client doesn't forward authentication headers with redirects when using proxy)
Added test case, but code seems already good.
2016-03-01 16:31:40 +01:00
Simone Bordet 24a203f976 Fixed compilation issue. 2016-03-01 15:58:32 +01:00
Simone Bordet 21abfb0351 Merged branch 'jetty-9.3.x' into 'master'. 2016-03-01 15:35:49 +01:00
Simone Bordet 04bb4af12c Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-03-01 15:21:19 +01:00
Simone Bordet d53766f6fe Issue #365 (Potential connection leakage in case of aborted request)
Fixed by releasing the connection that will not be used to the pool.
2016-03-01 15:19:02 +01:00
Simone Bordet 50422a1a1f Replaced usages of Random with ThreadLocalRandom in concurrent code. 2016-02-26 10:29:58 +01:00
Greg Wilkins aa7fd02c5f Merge remote-tracking branch 'origin/jetty-9.3.x' 2016-02-23 18:31:15 +01:00
Greg Wilkins 3c671aa8b6 Issue #346 HttpParser RFC2616 Compliance mode
Reimplmented HTTP/0.9 support in RFC2616 compliance mode
2016-02-23 17:33:53 +01:00
Simone Bordet c52c8304d8 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-22 11:34:07 +01:00
Simone Bordet 89ead7561e Issue #285 (PathContentProvider - Use of Direct buffers without pooling).
Introduced PathContentProvider.setByteBufferPool() so that a buffer
pool can be set (for example from HttpClient.getByteBufferPool()).
If present, PathContentProvider will use it.
2016-02-22 11:33:23 +01:00
Simone Bordet 51009208d4 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-19 13:23:34 +01:00
Simone Bordet 1d04b9ece0 Issue #347 (Avoid sending request using a connection that is idle timing out).
Can't make atomic decisions using AtomicInteger _and_ another field.
Now using synchronized.
2016-02-19 12:22:13 +01:00
Greg Wilkins 55eb54799f Issue #346 HttpParser RFC2616 Compliance mode
Added HttpParser.Compliance field to HttpConnectionFactory
2016-02-19 11:41:07 +01:00
Simone Bordet 48c4e08b94 Issue #347 (Avoid sending request using a connection that is idle timing out).
Fixed by improving the guard with a timestamp, and checking that the
time elapsed from the last timestamp is enough to prove it is a real
idle timeout.
2016-02-19 11:36:06 +01:00
Simone Bordet 55817a212f Improved toString(). 2016-02-19 11:36:06 +01:00
Simone Bordet df80aef265 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-12 16:01:38 +01:00
Simone Bordet ab2a168cf9 Made MultiplexConnectionPool sweepable.
Made HttpConnectionOverHTTP2 sweepable.
2016-02-12 15:24:07 +01:00
Simone Bordet 7c7c49f06b 484446 - InputStreamResponseListener's InputStream uses default read (3) and blocks early on never-ending response.
Implemented read(byte[],int.int) to fix the reported issue.
Reworked InputStreamResponseListener to use a callback approach
rather than blocking waiting for content.
2016-02-12 11:19:31 +01:00
Simone Bordet 9c075ff85c Converted anonymous inner classes to lambdas. 2016-02-11 09:37:46 +01:00
Simone Bordet 2ac465a343 Merged branch 'jetty-9.3.x' into 'master'. 2016-02-09 18:14:07 +01:00
Simone Bordet 6306f06e2f Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-02-09 18:12:04 +01:00
Simone Bordet 145e4bee71 487511 - Jetty HTTP won't work on turkish systems.
Fixed usages of toLowerCase() and toUpperCase() to use Locale.ENGLISH.
2016-02-09 17:50:26 +01:00
Joakim Erdfelt 288f2e1f51 Fixing javadoc: Invalid member type qualification 2016-01-21 16:53:04 -07:00
Simone Bordet 6128bd6d45 Merged branch 'jetty-9.3.x' into 'master'. 2016-01-05 11:50:52 +01:00
Simone Bordet 17a1e76ba0 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-01-05 11:25:20 +01:00
Simone Bordet 0050ad5a99 484621 - Client hangs till timeout when Authentication.authenticate() throws exception.
Fixed by surrounding the call to Authentication.authenticate() with a
try/catch and acting appropriately in case of exceptions.
2016-01-05 11:03:35 +01:00
Joakim Erdfelt 4032b8579a Happy New Year 2016 (take #2) 2016-01-04 15:14:27 -07:00
Joakim Erdfelt ac24196b0d Happy New Year 2016 2016-01-04 14:34:20 -07:00
Joakim Erdfelt cd39fd84fe Happy New Year 2016 2016-01-04 14:31:22 -07:00
Joakim Erdfelt b5db18378d Happy New Year 2016 2016-01-04 14:21:26 -07:00
Simone Bordet 3fb354f884 Merged branch 'jetty-9.3.x' into 'master'. 2015-12-21 13:02:04 +01:00
Simone Bordet 8f4cc73613 484585 - Avoid sending request using a connection that is idle timing out.
Rewritten handling of idle timeouts in light of issue #484718.
2015-12-21 11:47:05 +01:00
Simone Bordet 988e596c71 484585 - Avoid sending request using a connection that is idle timing out.
Added guard to avoid that the idle timeout expires just before
sending the request.

Reworked the way idle timeouts are handled, to support the case where
the idle timeout just expired and the request can be tried on a
different connection/channel.
2015-12-18 15:56:31 +01:00
Simone Bordet bf9f39dc17 Improved exception reporting. 2015-12-14 15:00:19 +01:00
Simone Bordet 829bdd3d7c Merged branch 'jetty-9.3.x' into 'master'. 2015-12-11 21:39:03 +01:00
Simone Bordet 8d28be5786 484210 - HttpClient over HTTP/2 should honor maxConcurrentStreams.
Fixed by sending queued requests in a loop up to maxConcurrentStreams.
Also updating the maxConcurrentStreams value when received from the
server.
2015-12-11 18:00:48 +01:00
Simone Bordet e674d3ec5e 483878 - Parallel requests stuck via the http client transport over HTTP/2. 2015-12-11 17:58:31 +01:00
Simone Bordet c5e56e72e6 Added concurrent load tests. 2015-12-09 10:51:24 +01:00
Joakim Erdfelt 7cdc58e6b9 Merge branch 'jetty-9.2.x' into feature/gziphandler-config 2015-12-08 14:56:26 -07:00
Greg Wilkins 3527c6a71b StringUtil.csvSplit(String)
Conflicts:
	jetty-maven-plugin/src/main/java/org/eclipse/jetty/maven/plugin/AbstractJettyMojo.java
	jetty-security/src/main/java/org/eclipse/jetty/security/PropertyUserStore.java
	jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/PushCacheFilter.java
	jetty-util/src/main/java/org/eclipse/jetty/util/StringUtil.java
	jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlConfiguration.java
2015-12-08 14:54:33 -07:00
Simone Bordet 4ea1bb0233 Merged branch 'jetty-9.3.x' into 'master'. 2015-12-08 22:20:28 +01:00
Simone Bordet 8d6206b8c7 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2015-12-08 22:20:05 +01:00
Simone Bordet 1693dd135d 483857 - jetty-client onComplete isn't called in case of exception in GZIPContentDecoder.
Fixed by catching the exceptions and failing the callbacks.

Also using return values from HttpReceiver to compute what to
return to the parser.
2015-12-08 22:10:27 +01:00
Simone Bordet 7125d52fdf Merged branch 'jetty-9.3.x' into 'master'. 2015-11-25 19:08:29 +01:00
Simone Bordet eac966cb9b 483009 - MultiPartContentProvider may send wrong Content-Length.
Introduced method close() to signal when no more parts will be added,
and calculating the Content-Length in setListener() only if when closed.
2015-11-25 16:02:21 +01:00
Simone Bordet 50041395f9 Merged branch 'jetty-9.3.x' into 'master'. 2015-11-25 14:00:19 +01:00
Greg Wilkins 204591ce82 482855 - Content-Length omitted for POST requests with empty body
Removed HTTP 0.9 support
A few code simplifications
Fixed clients relying on Content-Length headers being ignored
2015-11-25 20:50:59 +11:00
Greg Wilkins ff0d1b4c14 481903 Module Descriptions 2015-11-12 10:48:04 +11:00
Simone Bordet 8ed67c009f Removed usages of deprecated Callback.Adapter class. 2015-11-09 12:35:58 +01:00
Greg Wilkins 7843b7348e 480827 Implemented Unix Domain Socket Connector
Squashed commit of the following:

commit fbb680ba7cdb73495524ea9e5b0f49caee7f68d8
Merge: ed2550b 64ea0db
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Nov 6 10:44:00 2015 +1100

    Merge branch 'master' into unix-socket

commit ed2550b50f978e1984e19fbda642baf450dbe6a1
Merge: 88d7b35 de137ab
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Nov 5 18:41:25 2015 +1100

    Merge branch 'master' into unix-socket

commit 88d7b35f885de2da7dec836e6e4ae2b522d517f0
Merge: 7d4155f 3e2658a
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Nov 5 17:38:27 2015 +1100

    Merge branch 'master' into unix-socket

commit 7d4155fe4a407d493683b66709bc638879b0b422
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Nov 5 17:24:48 2015 +1100

    Unix socket configuration

commit 2737b19f73ad153c20e1762874558a5d62849f90
Merge: cd0cc2e 92cc44c
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Nov 4 15:13:40 2015 +1100

    Merge branch 'master' into unix-socket

    Conflicts:
    	jetty-server/src/main/java/org/eclipse/jetty/server/SecureRequestCustomizer.java

commit cd0cc2ef36a558d948bf26aff4f9e3519da2f823
Merge: 639753b 303f98e
Author: Greg Wilkins <gregw@webtide.com>
Date:   Mon Nov 2 12:21:19 2015 +1100

    Merge branch 'master' into unix-socket

commit 639753b5ed37778d7231acfe9d52039aed66351e
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 30 15:42:58 2015 +1100

    local connectors report NOIP address

commit 6d38c4195f145b99f775a06d546960b119094b0c
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 30 12:11:13 2015 +1100

    Gentler ssl close test

commit 40b46b66a738c9187f859d522a0165bb09b113c8
Merge: b7eb082 fa53b11
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 30 11:09:42 2015 +1100

    Merge branch 'master' into unix-socket

commit b7eb082be44864c058b6f01b10364013596d3650
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 30 08:34:30 2015 +1100

    SecureRequestCustomizer for UnixSockets

commit edbb3c080200b4c6aa2836eff6c81bf31a73a8c1
Merge: 90e8cc0 de7ac72
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Oct 29 19:47:05 2015 +1100

    Merge branch 'master' into unix-socket

commit 90e8cc060ff6dc4b249818db38334ffa543f002f
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Oct 29 19:31:50 2015 +1100

    use proxy connection

commit b1772ef5dcac9ddf9bb5ecda1cda6d038ca21755
Merge: e95a932 9fe7332
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Oct 29 16:46:29 2015 +1100

    Merge branch 'master' into unix-socket

commit e95a932bda5a96bf98ada4fb47664790af2aa0a2
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Oct 28 15:58:25 2015 +1100

    fixed config

commit f8963b2ed6b6b4b96f1d9403194c9d50ab1f12fd
Merge: 9c56b53 8b27484
Author: Greg Wilkins <gregw@webtide.com>
Date:   Wed Oct 28 15:34:28 2015 +1100

    Merge branch 'master' into unix-socket

commit 9c56b53cbec20d98e5cb05cf8d1f668fe84b95e0
Merge: 298a311 39768f8
Author: Greg Wilkins <gregw@webtide.com>
Date:   Mon Oct 26 13:04:34 2015 +1100

    Merge branch 'master' into unix-socket

commit 298a311af952ad3ef5d1c7635deabf47bddaa1c6
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 23 15:24:19 2015 +1100

    Async accepting

commit 8266753d124c04ec8bca8aa02be1ef3d826d6769
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 23 14:45:35 2015 +1100

    set acceptors

commit 6a56c5b9e19063fcb95cdc1228adf723c0d41362
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 23 11:44:54 2015 +1100

    licence

commit d80e5748e6c4327bae57de2af01983990dd2afe0
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 23 11:24:14 2015 +1100

    unixsocket work in progress adding modules

commit cf0c1153d9966cc7182ba29411527b4341c34da6
Merge: 645b671 c39bfa2
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 23 08:52:01 2015 +1100

    Merge branch 'master' into unix-socket

commit 645b6712d37282c26011a95c8c98e45c249b2e5f
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Oct 23 08:49:52 2015 +1100

    IP headers

commit 67b210b9ea81af68ce3848a114bbbd1b80a8ca52
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Oct 22 23:48:57 2015 +1100

    working with haproxy

commit e4fce9cf5d896a9a29a7c6280fcaa0336dfcc0f2
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Oct 22 18:25:09 2015 +1100

    unixsocket working

commit 6f013788cad44e6641cd89720c5e7f3652cdc257
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Oct 22 15:39:55 2015 +1100

    work in progress
2015-11-06 11:17:46 +11:00
Simone Bordet f717ff5f49 Merged branch 'jetty-9.3.x' into 'master'. 2015-11-04 15:06:10 +01:00
Simone Bordet afc6b9e5c0 Fixed compilation issues. 2015-11-04 15:00:39 +01:00
Simone Bordet 82d0807863 Merged branch 'jetty-9.3.x' into 'master'. 2015-11-04 13:50:26 +01:00
Simone Bordet 7a34631397 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2015-11-04 13:40:44 +01:00
Simone Bordet 0172b68301 481006 - SSL requests intermittently fail with EOFException when SSL renegotiation is disallowed.
Fixed by notifying the Connection promise from onOpen() rather than
just after the creation of the connection.
2015-11-04 13:26:27 +01:00
Joakim Erdfelt 60ed6cd143 Javadoc fix: Invalid member type qualification 2015-11-02 13:33:58 -07:00
Simone Bordet 36fdf9b788 Merged branch 'jetty-9.3.x' into 'master'. 2015-11-02 18:23:38 +01:00
Simone Bordet b102bd507a 419966 - Add ContentProvider that submits multipart/form-data.
Second implementation after feedback from the community.
2015-11-02 18:17:51 +01:00
Simone Bordet 0bd1e0ad7d 481116 - Introduce connection pooling also for HTTP/2 transport.
Implemented connection pooling for multiplexed transports.
Reworked the ConnectionPool code and its relationship with
HttpDestination.
2015-10-30 15:33:12 +01:00
Simone Bordet 0b95a9e23e Merged branch 'jetty-9.3.x' into 'master'. 2015-10-30 11:18:16 +01:00
Simone Bordet 45cd1f1ce6 Improved thread safety. 2015-10-30 11:17:28 +01:00
Simone Bordet 915a905df4 Refactored checks for secure schemes. 2015-10-29 19:27:33 +01:00
Simone Bordet 6b0e1d48c5 Fixed onUpgradeFrom(): buffer must be copied. 2015-10-29 19:26:56 +01:00
Simone Bordet 7200b2df0e 479678 - Support HTTP/1.1 Upgrade in HttpClient.
Removed leftover code.
2015-10-29 18:36:00 +01:00
Simone Bordet 3789c73ba3 Merged branch 'jetty-9.3.x' into 'master'. 2015-10-27 15:33:21 +01:00
Simone Bordet 4134b1eca8 419966 - Add ContentProvider that submits multipart/form-data.
Implemented this functionality.
2015-10-27 15:32:26 +01:00
Simone Bordet d67cfaa910 Merged branch 'jetty-9.3.x' into 'master'. 2015-10-26 12:35:05 +01:00
Simone Bordet 1ab64ed080 Fixed test.
Made sure that read interest or upgrade only happen after the write
has completed.
2015-10-26 12:34:17 +01:00
Simone Bordet c39bfa2e4a Merged branch 'jetty-9.3.x' into 'master'. 2015-10-22 20:52:22 +02:00
Simone Bordet 53df0cba3f Avoid to dump the destinations twice. 2015-10-22 20:49:48 +02:00
Simone Bordet fe62dd7c42 Merged branch 'jetty-9.3.x' into 'master'. 2015-10-21 18:50:19 +02:00
Simone Bordet 03b994a32c Fixed HttpDestination lifecycle. 2015-10-21 17:10:26 +02:00
Simone Bordet 3cc386bef9 Merged branch 'jetty-9.3.x' into 'master'. 2015-10-21 14:33:26 +02:00
Simone Bordet 3fc6320881 Using EndPoint.upgrade() in client code when connections are upgraded
and removed ClientConnectionFactory.Helper.
2015-10-21 14:32:37 +02:00
Joakim Erdfelt fae4f5d43f Merge branch 'jetty-9.3.x' 2015-10-19 11:59:44 -07:00
Simone Bordet a6ba51fe24 Deprecated ConnectionPool. 2015-10-19 18:13:12 +02:00
Joakim Erdfelt 15ee24585e 479678 - Support HTTP/1.1 Upgrade in HttpClient
+ Adding Connection.UpgradeFrom support to HttpConnectionOverHTTP
+ (Soft) Closing HttpConnectionOverHTTP on upgrade
+ Removing 'extends Connection' from Connection.UpgradeFrom and
  Connection.UpgradeTo to allow for use from components that
  delegate bytebuffer handling away from raw Connection
2015-10-15 09:18:03 -07:00
Greg Wilkins 72d97f77cc fixed client test 2015-10-15 17:19:06 +11:00
Joakim Erdfelt f0deae82d4 479678 - Support HTTP/1.1 Upgrade in HttpClient
+ Changing is upgrade test in HttpChannelOverHTTP
+ Adding wss to normalizePort / isDefaultPort
+ Adding wss to isSecure
+ Adding wss to proxy handling (for isSecure tests)
2015-10-14 11:16:55 -07:00
Simone Bordet b0eb18b451 479678 - Support HTTP/1.1 Upgrade in HttpClient.
Initial support.
2015-10-13 22:55:25 +02:00
Simone Bordet 399755b352 479026 - Wrong CONNECT request idle timeout.
Explicitly set the CONNECT request idle timeout instead of inheriting
HttpClient's.
2015-10-05 11:52:58 +02:00
Simone Bordet 3dcdb9f802 Merged branch '477878' into 'master'. 2015-09-25 19:34:45 +02:00
Simone Bordet 3201d0acd2 477878 - HttpClient over HTTP/2 doesn't close upload stream.
Clarified the difference between last and consumed in HttpContent.
Fixed HTTP/2 transport to behave correctly in case of last content.
2015-09-25 19:31:40 +02:00
Greg Wilkins 1af9b3e241 477900 Increase client authentication default max content size 2015-09-24 17:23:30 +10:00
Simone Bordet 8c21871cf0 478021 - Client sending Connection: close does not shutdown output.
Fixed behavior of HttpGenerator to change its persistent also for
requests.

Reworked HttpSenderOverHTTP to send headers via IteratingCallback, so
that multiple generation steps can be made to produce SHUTDOWN_OUT.
2015-09-23 22:23:37 +02:00
Simone Bordet f063df4200 Make this exception extend RuntimeException, not Throwable. 2015-09-23 22:23:37 +02:00
Simone Bordet ff97796ab2 Using ServerConnector instead of NetworkConnector to improve ease of use. 2015-09-23 22:23:37 +02:00
Simone Bordet fde718a3ad Added tests to verify behavior in case of server closing (or not) the
connection in presence of a Connection: close header.
2015-09-21 11:34:57 +02:00
Simone Bordet b23c2bd309 476170 - Support servers that close connections without sending Connection: close header.
Removed previous implementation in favor of a customized
ConnectionPool, that gives more flexibility on the actual logic to
validate connections.
2015-09-01 15:44:30 +02:00
Simone Bordet 60136c6825 Using Queue rather than BlockingQueue in method return types. 2015-09-01 15:30:42 +02:00
Simone Bordet 4ba2b22da7 476170 - Support servers that close connections without sending Connection: close header.
Adding support for validating the connection only in the HTTP/1.1
transport.
2015-08-30 18:09:54 +02:00
Simone Bordet 7211d415f9 Updated test to run even when not connected to the network. 2015-08-30 18:09:53 +02:00
Simone Bordet 6c5477de86 Fixed randonly failing test.
Sometimes the DNS was returning one IPv4 and one IPv6 address.
Replacing the IPv4 one left as the only valid address the IPv6; but
if IPv6 is not deployed on the network infrastructure, then that will
fail too, causing the test to fail.
2015-08-25 18:21:03 +02:00
Simone Bordet ef9724f448 Improved error reporting. 2015-08-25 18:19:29 +02:00
Simone Bordet 3333d1834f Using try-with-resources to close ServerSocket. 2015-08-25 16:22:56 +02:00
Simone Bordet c24aa25dfb 475546 - ClosedChannelException when connecting to HTTPS over HTTP proxy with CONNECT.
Not closing the connection if the request method is CONNECT.
2015-08-25 15:07:50 +02:00
Simone Bordet a93b35d59e Improved documentation regarding the effects of ContentProvider.getLength()
on other HTTP headers such as Content-Length.
2015-08-24 19:20:49 +02:00
Simone Bordet 545fa0f72b 475605 - Add support for multi-homed destinations.
If DNS lookup returns multiple IP addresses, HttpClient tries to
connect to the first; failing that, to the second, and so on.
2015-08-24 12:31:08 +02:00
Simone Bordet 69b90ef59b 474888 - HttpClient JMX support. 2015-08-13 15:16:14 +02:00
Simone Bordet 542ef22ba8 Merged branch 'jetty-9.2.x' into 'master'. 2015-08-05 17:50:25 +02:00
Simone Bordet e0039a95e8 474321 - Allow synchronous address resolution.
Refactored SocketAddressResolver into interface and one sync and one
async implementations. Added getter/setter methods to HttpClient.
2015-08-05 16:51:16 +02:00
Simone Bordet 7149eace17 474319 - Reintroduce blocking connect(). 2015-08-05 14:39:27 +02:00
Greg Wilkins 607239028c 470727 - Thread Starvation of selector wakeups.
Changed the CallBack.NonBlocking to a default Callback.isNonBlocking, so that wrapping callbacks can determine if they are NonBlocking or not.
2015-07-22 17:31:54 +10:00
Greg Wilkins 3e401a62e9 StringUtil.csvSplit(String) 2015-06-19 16:48:53 +10:00
Joakim Erdfelt 7c737a587b Removing [version] sections in modules 2015-06-12 09:14:34 -07:00
Joakim Erdfelt b670b9e47d Merge branch 'master' into bugs/469860
Conflicts:
	jetty-start/src/main/java/org/eclipse/jetty/start/StartArgs.java
	jetty-start/src/test/resources/assert-home-with-http2.txt
2015-06-11 06:57:16 -07:00
Simone Bordet aaf0d8889d Merged branch 'jetty-9.2.x' into 'master'. 2015-06-11 15:44:06 +02:00
Simone Bordet 2c26e82fea 469936 - Remove usages of SpinLock.
Causes high CPU usage when contended, and the JVM can do better with
its own spin lock and biased locking.
2015-06-11 15:36:20 +02:00
Joakim Erdfelt 916efd6aa7 469860 - Add module metadata versioning to support backwards compat
+ Adding [version] section to all existing jetty 9.3 distro modules
+ Updating testcases in jetty-start with new [version] sections too
+ Adding extra testcases for versioned modules
2015-06-10 10:59:18 -07:00
Simone Bordet b18adb525f 469633 - Make SpinLock behavior pluggable.
Renamed SpinLock to Locker, uses ReentrantLock by default, but can be
turned into a spin lock by setting the system property
org.eclipse.jetty.util.thread.Locker.spin=true.
2015-06-08 17:15:54 +02:00
Simone Bordet 061a8e253e Merged remote branch 'jetty-9.2.x' into 'master'. 2015-05-28 15:39:42 +02:00
Simone Bordet 0ad471449b 468421 - HttpClient#send fails with IllegalArgumentException on non-lowercase schemes.
RFC 7230 specifies that both scheme and host must be case insensitive.
2015-05-28 15:38:28 +02:00
Simone Bordet c7cff6ec7e 467603 - Response 401 from server hangs client. 2015-05-19 19:05:06 +02:00
Simone Bordet a2566bedd8 Merged branch 'jetty-9.2.x' into 'master'. 2015-04-23 09:09:48 +02:00
Simone Bordet 1270d291cc 465181 - HttpParser parse full end chunk.
Continue parsing until the buffer is empty, or the parser returns
true to indicate that content is being handled asynchronously.
2015-04-23 08:58:54 +02:00
Joakim Erdfelt c9d8d07a63 464727 - Update Javadoc for Java 8 DocLint 2015-04-22 14:21:53 -07:00
Joakim Erdfelt 09b5f680b7 464727 - Update Javadoc for Java 8 DocLint
Eliminate empty tag warnings
+ Changed <p/> to <p>
+ Changed <br/> to <br>
2015-04-15 14:38:35 -07:00
Simone Bordet 48dd4d8b56 440106 - Improve ProtocolHandler APIs.
Introduced ProtocolHandlers, the container for ProtocolHandler
instances, which now have also a name.
2015-03-31 19:17:02 +02:00
Simone Bordet 6263972d1e Merged branch 'jetty-9.2.x' into 'master'. 2015-03-31 13:58:41 +02:00
Simone Bordet 509d13531c 463579 - Add support for 308 status code. 2015-03-31 13:57:12 +02:00
Simone Bordet cd4ab9f369 Merged branch 'jetty-9.2.x' into 'master'. 2015-03-26 11:54:40 +01:00
Simone Bordet 07d29fb1b3 461499 - ConnectionPool may leak connections.
Avoid that the complete event is notified before or concurrently with
the response success event.
2015-03-26 11:33:17 +01:00
Greg Wilkins 1cb0449be3 Organised imports 2015-03-26 12:32:15 +11:00
Simone Bordet d20c7707b7 Merged branch 'jetty-9.2.x' into 'master'. 2015-03-24 20:56:26 +01:00
Simone Bordet 1dc66b72dd 461499 - ConnectionPool may leak connections.
Made associate(), disassociate() and abort() atomic operations using
the HttpExchange state to coordinate atomicity.
In this way, it's not possible to associate a HttpChannel and a
HttpExchange if the latter has been aborted.
2015-03-24 16:19:45 +01:00
Simone Bordet 161317a5ef Merged branch 'jetty-9.2.x' into 'master'. 2015-03-23 22:32:40 +01:00
Simone Bordet 79e74c64e1 Introduced a generic Sweeper.
The Sweeper class periodically sweeps resources added to it.
Currently used to check whether the HttpClient code does not leak
connections.
2015-03-20 00:42:24 +01:00
Simone Bordet 6fa30da0eb Fixed code that compared enum values. 2015-03-20 00:25:42 +01:00
Greg Wilkins 3f795da26c 459845 - Support upgrade from http1 to http2
Generalised Upgrade Connection Factories
2015-03-13 13:59:29 +11:00
Greg Wilkins 0dd58d2efe 459845 - Support upgrade from http1 to http2
Moved the sneaky direct upgrade to its own method and added support to detect a standard upgrade.
The standard upgrade now creates the h2c connection and decodes the settings header, but it does not yet process the
settings nor send a response to the request.
2015-03-12 16:52:17 +11:00
Greg Wilkins 1de53a888d Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	VERSION.txt
	aggregates/jetty-all/pom.xml
	apache-jsp/pom.xml
	apache-jstl/pom.xml
	examples/async-rest/async-rest-jar/pom.xml
	examples/async-rest/async-rest-webapp/pom.xml
	examples/async-rest/pom.xml
	examples/embedded/pom.xml
	examples/pom.xml
	jetty-alpn/jetty-alpn-client/pom.xml
	jetty-alpn/jetty-alpn-server/pom.xml
	jetty-alpn/pom.xml
	jetty-annotations/pom.xml
	jetty-ant/pom.xml
	jetty-cdi/pom.xml
	jetty-client/pom.xml
	jetty-continuation/pom.xml
	jetty-deploy/pom.xml
	jetty-distribution/pom.xml
	jetty-fcgi/fcgi-client/pom.xml
	jetty-fcgi/fcgi-server/pom.xml
	jetty-fcgi/pom.xml
	jetty-http-spi/pom.xml
	jetty-http/pom.xml
	jetty-http2/http2-alpn-tests/pom.xml
	jetty-io/pom.xml
	jetty-jaas/pom.xml
	jetty-jaspi/pom.xml
	jetty-jmx/pom.xml
	jetty-jndi/pom.xml
	jetty-jsp/pom.xml
	jetty-jspc-maven-plugin/pom.xml
	jetty-maven-plugin/pom.xml
	jetty-monitor/pom.xml
	jetty-nosql/pom.xml
	jetty-osgi/jetty-osgi-alpn/pom.xml
	jetty-osgi/jetty-osgi-boot-jsp/pom.xml
	jetty-osgi/jetty-osgi-boot-warurl/pom.xml
	jetty-osgi/jetty-osgi-boot/pom.xml
	jetty-osgi/jetty-osgi-httpservice/pom.xml
	jetty-osgi/jetty-osgi-npn/pom.xml
	jetty-osgi/pom.xml
	jetty-osgi/test-jetty-osgi-context/pom.xml
	jetty-osgi/test-jetty-osgi-webapp/pom.xml
	jetty-osgi/test-jetty-osgi/pom.xml
	jetty-plus/pom.xml
	jetty-proxy/pom.xml
	jetty-quickstart/pom.xml
	jetty-rewrite/pom.xml
	jetty-runner/pom.xml
	jetty-security/pom.xml
	jetty-server/pom.xml
	jetty-servlet/pom.xml
	jetty-servlets/pom.xml
	jetty-spdy/pom.xml
	jetty-spdy/spdy-client/pom.xml
	jetty-spdy/spdy-core/pom.xml
	jetty-spdy/spdy-example-webapp/pom.xml
	jetty-spdy/spdy-http-client-transport/pom.xml
	jetty-spdy/spdy-http-common/pom.xml
	jetty-spdy/spdy-http-server/pom.xml
	jetty-spdy/spdy-npn-tests/pom.xml
	jetty-spdy/spdy-server/pom.xml
	jetty-spring/pom.xml
	jetty-start/pom.xml
	jetty-util-ajax/pom.xml
	jetty-util/pom.xml
	jetty-webapp/pom.xml
	jetty-websocket/javax-websocket-client-impl/pom.xml
	jetty-websocket/javax-websocket-server-impl/pom.xml
	jetty-websocket/pom.xml
	jetty-websocket/websocket-api/pom.xml
	jetty-websocket/websocket-client/pom.xml
	jetty-websocket/websocket-common/pom.xml
	jetty-websocket/websocket-server/pom.xml
	jetty-websocket/websocket-servlet/pom.xml
	jetty-xml/pom.xml
	pom.xml
	tests/pom.xml
	tests/test-continuation/pom.xml
	tests/test-integration/pom.xml
	tests/test-jmx/jmx-webapp-it/pom.xml
	tests/test-jmx/jmx-webapp/pom.xml
	tests/test-jmx/pom.xml
	tests/test-loginservice/pom.xml
	tests/test-quickstart/pom.xml
	tests/test-sessions/pom.xml
	tests/test-sessions/test-hash-sessions/pom.xml
	tests/test-sessions/test-jdbc-sessions/pom.xml
	tests/test-sessions/test-mongodb-sessions/pom.xml
	tests/test-sessions/test-sessions-common/pom.xml
	tests/test-webapps/pom.xml
	tests/test-webapps/test-jaas-webapp/pom.xml
	tests/test-webapps/test-jetty-webapp/pom.xml
	tests/test-webapps/test-jndi-webapp/pom.xml
	tests/test-webapps/test-mock-resources/pom.xml
	tests/test-webapps/test-proxy-webapp/pom.xml
	tests/test-webapps/test-servlet-spec/pom.xml
	tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml
	tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml
	tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml
	tests/test-webapps/test-webapp-rfc2616/pom.xml
2015-03-11 10:39:38 +11:00
Simone Bordet 38250545fc Improved exception handling, aborting the exchange rather than throwing. 2015-03-10 10:36:24 +01:00
Simone Bordet bab7888c59 Fixed HttpClient Javadocs. 2015-03-10 10:15:41 +01:00
Simone Bordet b7715fb3eb Merged branch 'jetty-9.2.x' into 'master'. 2015-03-07 23:26:59 +01:00
Simone Bordet 7c915bcba2 461643 - HttpContent.advance() race.
Fixed by correctly synchronizing on ContentProvider.iterator.hasNext()
and ContentProvider.iterator.next() for those ContentProviders that
require it, such as DeferredContentProvider.
2015-03-07 23:13:21 +01:00
Simone Bordet a13a55e242 Introduced LeakDetector.id() to be consistent in logging the resource ID. 2015-03-07 22:32:59 +01:00
Joakim Erdfelt 130afb9535 Merge branch 'jetty-9.2.x'
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/LeakTrackingConnectionPool.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientLoadTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientUploadDuringServerShutdown.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java
	jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SynDataReplyDataLoadTest.java
	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/TooFastClientTest.java
2015-03-06 15:57:52 -07:00
Joakim Erdfelt 74ee154bb1 Cleaning up LeakTrackingByteBufferPool / LeakDetector
+ Making use of LeakTrackingByteBufferPool more consistent
+ Using MappedByteBufferPool.Tagged where appropriate in test cases
+ Adding leak count tracking to LeakDetector
+ Adding leak count tracking to LeakTrackingByteBufferPool
+ Renaming websocket LeakTrackingBufferPool to
  LeakTrackingBufferPoolRule to reflect junit @Rule usage
+ Making websocket LeakTrackingBufferPoolRule always use
  MappedByteBufferPool.Tagged
+ Fixed various grammar concerns
2015-03-06 14:27:58 -07:00
Greg Wilkins 6ed01cf15b removed ambiguous logging 2015-03-06 16:29:25 +11:00
Simone Bordet 3e0949ad2c Merged branch 'jetty-9.2.x' into 'master'. 2015-03-05 18:19:27 +01:00
Simone Bordet 3b8bf8d1e0 Made test more stable. 2015-03-05 16:55:04 +01:00
Simone Bordet a64368df5d Factored into own method code executed after creation of a new
connection.
2015-03-05 16:54:44 +01:00
Simone Bordet 1a5346ec4f 461499 - ConnectionPool may leak connections.
Now using SpinLock to guard concurrent access to the connection
queues (idle and active) so that operations on them are atomic.
2015-03-05 15:42:03 +01:00
Greg Wilkins 48b6bec64c Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
2015-03-05 20:17:20 +11:00
Greg Wilkins 2169ea6494 further cleanups of HttpExchange 2015-03-05 19:50:30 +11:00
Greg Wilkins e8b6902b16 SpinLock cleanup of HttpExchange 2015-03-05 18:32:17 +11:00
Greg Wilkins 2619edff5a 461452 Double release of buffer by HttpReceiverOverHTTP
Clear buffer on exception to avoid release guard
2015-03-05 16:22:07 +11:00
Greg Wilkins 042de2ec9f 461452 Double release of buffer by HttpReceiverOverHTTP
Updated HttpParse to always return from parseNext when messageComplete is called.  This allows it to notice reentrant state changes
and removes the need for HttpReceiverOverHTTP.methodComplete to return true, thus avoiding the race.
2015-03-05 15:26:19 +11:00
Greg Wilkins 418a60bbd0 461452 Double release of buffer by HttpReceiverOverHTTP
Updated comments to better describe the race to double release the buffer
2015-03-05 12:15:31 +11:00
Greg Wilkins 8cbab09527 461452 Double release of buffer by HttpReceiverOverHTTP
This commit is just a tidy up of the code to reduce the size of the race causing this problem.  It is not a fix.
2015-03-05 11:05:35 +11:00
Simone Bordet 40ad8dc608 Notifying the "failure" event for request and response when the failure
is detected during the processing of another event.
2015-03-04 01:01:09 +01:00
Simone Bordet 66df49bb4c Clarified test code. 2015-03-02 09:57:42 +01:00
Simone Bordet ec2fcb6648 Made tests more stable by consuming the content on the server.
When the content was not consumed, it was possible that the response
arrived to the client before it was able to send the whole request
content.
In some cases/tests this would cause the request to fail, thereby
failing the test as well.
2015-02-27 11:06:57 +01:00
Simone Bordet b86ab56cfc Fixed test. 2015-02-27 10:26:24 +01:00
Simone Bordet 27beeff164 Merged branch 'jetty-9.2.x' into 'master'. 2015-02-27 09:56:32 +01:00
Simone Bordet da80498c56 Improved logging. 2015-02-26 23:38:27 +01:00
Simone Bordet bbc2d0c29d Simplified abort logic. 2015-02-26 23:26:24 +01:00
Simone Bordet 31a0b36f3c Improved logging and toString() implementations. 2015-02-26 23:26:24 +01:00
Simone Bordet 008b03ac78 460905 - Make sure TimeoutCompleteListener is cancelled if the request cannot be sent. 2015-02-26 12:25:42 +01:00
Simone Bordet d5a6ad2345 460905 - Make sure TimeoutCompleteListener is cancelled if the request cannot be sent. 2015-02-26 10:56:19 +01:00
Greg Wilkins 165ae8f238 Improved LocalConnector 2015-02-26 20:13:45 +11:00
Simone Bordet d9255d02d8 Fixed test. 2015-02-24 13:08:21 +01:00
Simone Bordet c52ba39722 Preventing NPE in case the exchange is failed in the middle of
sending content.
2015-02-24 13:01:11 +01:00
Simone Bordet 58ea526b56 Notifying client connection's promise from onOpen().
The client connection's promise was succeeded in the context of a
call to SelectorManager.newConnection().
This was wrong, since succeeding the promise may trigger the send
of a request *before* the connection is actually linked to the
endPoint and opened.

This change moves the succeeding of the client connection's promise
to the connection onOpen() method.
2015-02-20 18:23:31 +01:00
Simone Bordet a01d85f0d9 Merged branch 'jetty-9.2.x' into 'master'. 2015-02-20 16:08:18 +01:00
Simone Bordet 71f6527cae Removed extra dispatches from HTTP client code. 2015-02-20 16:02:54 +01:00
Simone Bordet b69b8dfe50 460443 - Race condition releasing the response buffer.
Fixed by making sure that the response buffer is released at the
appropriate times.
2015-02-20 16:00:42 +01:00
Simone Bordet ddde0db339 Added test to check that a 100 Continue response and a normal response,
when read in a single read by the client, are processed correctly.
2015-02-20 16:00:42 +01:00
Simone Bordet 28b9a0927c Merged branch 'jetty-9.2.x' into 'master'. 2015-02-15 20:51:49 +01:00
Simone Bordet ffa32dfae7 459963 - Failure writing content of a committed request leaks connections.
Fixed by making the logic in HttpSender fail and complete the response
in case of request failure, without taking in consideration whether
the request was committed or aborted.
2015-02-15 20:42:55 +01:00
Simone Bordet cf022de2fd Removed unused @Slow annotations. 2015-02-15 20:41:36 +01:00
Simone Bordet 8f0a874163 Removed unnecessary hiding of stack traces. 2015-02-15 20:40:50 +01:00
Simone Bordet ed1cbc0631 Improved logging. 2015-02-15 20:39:01 +01:00
Greg Wilkins 0f7ee8d607 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpVersion.java
	jetty-io/src/main/java/org/eclipse/jetty/io/EndPoint.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
2015-02-13 11:45:56 +11:00
Greg Wilkins 2b2a70a93a 459845 Support upgrade
Added the concept of UpgradeFrom and UpgradeTo connections that support
transferring a buffer with content before opening new connection.
Aded EndPoint.update method as utility
2015-02-13 11:41:18 +11:00
Simone Bordet be860741d5 459655 - Remove SPDY and NPN.
Cleanup of javadocs, comments, XML and other text files.
2015-02-11 16:18:07 +01:00
Simone Bordet 7dffe4f082 459542 - AsyncMiddleManServlet race condition on first download content.
Fixed the race condition by submitting a zero length buffer to write
from onWritePossible() which will succeed the callback without
causing races.
2015-02-10 13:16:41 +01:00
Simone Bordet 12e2f9e6c8 459542 - AsyncMiddleManServlet race condition on first download content.
Fixed the race condition by submitting a zero length buffer to write
from onWritePossible() which will succeed the callback without
causing races.
2015-02-10 13:10:57 +01:00
Simone Bordet cb5541b58e Merged branch 'jetty-9.2.x' into 'master'. 2015-02-09 17:39:16 +01:00
Simone Bordet f974c74329 Implemented HTTP2Client connect timeout. 2015-02-09 16:22:21 +01:00
Simone Bordet 2a749dc0ea Fail the callback in case we cannot activate a newly created connection. 2015-02-09 12:11:18 +01:00
Simone Bordet 96132dbe45 Merged branch 'jetty-9.2.x' into 'master'. 2015-02-09 08:56:03 +01:00
Simone Bordet 43f14997d8 Improved toString() methods for better reporting during dump(). 2015-02-09 08:54:52 +01:00
Simone Bordet 99da9ce98e Merged branch 'jetty-9.2.x' into 'master'. 2015-02-06 21:45:22 +01:00
Simone Bordet ee16dfd066 Added test to verify the complete event is not fired until the
content is consumed.
2015-02-06 21:42:07 +01:00
Simone Bordet 12eaedd96b Refactored HttpDestination to allow customization of the request enqueuing.
Subclasses may override enqueue() and provide a different algorihtm.
2015-02-06 21:42:07 +01:00
Simone Bordet 961a90d16c Merged branch 'jetty-9.2.x' into 'master'. 2015-01-29 14:11:21 +01:00
Simone Bordet e03cd5e286 451092 - Connector will fail if HeaderListener return false.
Not a bug, but wrote one more test and clarified Javadocs.
2015-01-29 11:44:11 +01:00
Simone Bordet af312dbca0 Fixed case where a trying to send a request was causing an IllegalStateException.
It is always possible that a request is aborted by the client code
while being sent, so we should just return rather than throwing.
2015-01-29 11:13:39 +01:00
Simone Bordet b6e4852179 Improved dump() output. 2015-01-29 11:13:39 +01:00
Simone Bordet 88ed996295 Improved toString(). 2015-01-29 11:13:39 +01:00
Simone Bordet a52703cba9 458527 - Implement an async proxy servlet that can perform content transformations. 2015-01-27 15:29:47 +01:00
Simone Bordet 6861da11b9 457130 - HTTPS request with IP host and HTTP proxy throws IllegalArgumentException.
Fixed handling of cookies in case of null URI.
2015-01-09 16:08:41 +01:00
Simone Bordet c7d9c5c951 457130 - HTTPS request with IP host and HTTP proxy throws IllegalArgumentException.
Fixed handling of cookies in case of null URI.
2015-01-09 16:07:41 +01:00
Simone Bordet 86c2d01e80 Merged branch 'jetty-9.2.x' into 'master'. 2015-01-09 12:59:17 +01:00
Simone Bordet fd13361132 Fixed test assumption. 2015-01-09 12:58:14 +01:00
Simone Bordet 8a27385bc3 Merged branch 'jetty-9.2.x' into 'master'. 2015-01-09 12:51:13 +01:00
Simone Bordet bb2872b789 Fixed test assumption. 2015-01-09 12:46:56 +01:00
Simone Bordet adae3193d8 457130 - HTTPS request with IP host and HTTP proxy throws IllegalArgumentException.
Fixed by handling the case of non-URI request target.
2015-01-09 11:49:13 +01:00
Joakim Erdfelt 7e7dd40f0a Happy New Year 2015 (merge from master) 2015-01-08 09:14:13 -07:00
Simone Bordet 0c21d7c78b Merged branch 'jetty-9.2.x' into 'master'. 2015-01-08 16:57:45 +01:00
Simone Bordet 51aafc78a4 457032 - Request sent from a failed CompleteListener due to connect timeout is failed immediately.
Fixed by copying the exchange queue and failing only the exchanges
that are present in the copy.
2015-01-08 16:56:59 +01:00
Joakim Erdfelt a3201a3c81 Happy New Year 2015 2015-01-07 17:06:59 -07:00
Joakim Erdfelt 6a0668b7a1 Happy New Year 2015 2015-01-07 17:03:30 -07:00
Simone Bordet a85a74bbdc Reworked buffer releasing to ensure that it is always executed before
fillInterested() is called.
This is needed to avoid race conditions where fillInterested()
triggers a new thread entering onFillable() and acquiring a new buffer
while the previous thread is releasing the previous buffer.
2015-01-02 18:22:39 +01:00
Greg Wilkins cc216eb8ee fixed client proxy test 2015-01-02 15:38:12 +01:00
Greg Wilkins e1e57924dc fixed client test for new lazy consumeAll behaviour 2015-01-02 15:36:34 +01:00
Greg Wilkins dcd9182f87 fixed client test for new lazy consumeAll behaviour 2015-01-02 15:31:34 +01:00
Greg Wilkins a4d2895400 removed unneeded execute for SslConnection onFillable 2015-01-02 15:24:14 +01:00
Greg Wilkins 3af9b145a3 Deprecated the AbstractConnection dispatchIO mechanism 2015-01-01 16:18:13 +01:00
Greg Wilkins 5f2a7fdfce fixed http client respond before consumed test.
The server now is a bit lazier if the handler has not consumed content.  It will not block to consume and gives up and closes the connection instead.
2014-12-31 11:48:23 +01:00
Simone Bordet 9cff4a57e7 Merged branch 'master' into 'jetty-9.3-ewyk'. 2014-12-22 21:34:10 +01:00
Simone Bordet e8c88cfd9c Merged branch 'jetty-9.2.x' into 'master'. 2014-12-22 21:32:09 +01:00
Simone Bordet c944b06a61 New tests testing request retry. 2014-12-22 21:27:59 +01:00
Greg Wilkins 3b34423b17 EWYK SelectorManager 2014-12-18 17:06:32 +01:00
Greg Wilkins cdd2b0a9d2 refacted SelectorManager to have a ManagedSelector 2014-12-17 16:29:24 +01:00
Greg Wilkins 28fb3e45d0 453636 Improved spin detection on test 2014-12-10 10:16:16 +01:00
Simone Bordet 64597b318c Merged branch 'jetty-9.2.x' into 'master'. 2014-11-03 17:25:37 +01:00
Simone Bordet 9c64fb73e4 449603 - OutputStreamContentProvider hangs when host is not available.
Fixed by having HttpRequest.abort() to fail the ContentProvider.
In this way, the ContentProvider knows, even before being used to
send the request content, that the request has failed, and may
forward the failure to the client code.
2014-11-03 16:50:59 +01:00
Simone Bordet cbd7b75e10 Removed unused code. 2014-11-03 10:55:13 +01:00
Greg Wilkins 31e448ffd6 Removed duplication of HttpGenerator$Info vs http.MetaData
Use MetaData throughout code base
2014-10-24 15:51:20 +11:00
Simone Bordet 360fce58be Merged branch 'jetty-9.2.x' into 'master'. 2014-10-23 12:54:07 +02:00
Simone Bordet fac197f868 Clarified semantic of Request.header(). 2014-10-23 12:53:37 +02:00
Simone Bordet 9cb21d1377 Merged branch 'jetty-9.2.x' into 'master'. 2014-10-23 12:42:00 +02:00
Simone Bordet f7baf9923f Fixed issue caused by the fix to #447746: user agent header must not
be added, but overwritten.
2014-10-23 12:41:16 +02:00
Simone Bordet 65832dfae3 Merged branch 'jetty-9.2.x' into 'master'. 2014-10-23 11:47:02 +02:00
Simone Bordet 84b38aba15 447746 - HttpClient is always going to send User-Agent header even though I do not want it to. 2014-10-23 11:46:18 +02:00
Simone Bordet 0eade706a6 Removed Thread.dumpStack() calls used for debugging. 2014-10-22 18:10:25 +02:00
Simone Bordet 6268421dd0 Merged branch 'jetty-9.2.x' into 'master'. 2014-10-16 18:05:12 +02:00
Simone Bordet f2eaa963f8 Removed debugging statements. 2014-10-16 17:42:32 +02:00
Simone Bordet e7d830c26e Merged branch 'jetty-9.2.x' into 'master'. 2014-10-13 16:57:52 +02:00
Simone Bordet 2dba2ea2c2 Improved exception reporting. 2014-10-13 16:55:59 +02:00
Simone Bordet 6ed0170913 Removed call to Thread.dumpStack(). 2014-09-26 11:34:26 +02:00
Simone Bordet 8d2efaf7eb 445167 - Allow configuration of dispatch after select.
Introduced parameter "dispatchIO" in the relevant factories so that
they can be configured by users and connections will be created
taking into account this parameter.

For less configurable connection factories, this parameter is
currently hardcoded to either true or false depending on the case.
For example, ALPN and NPN connections have it to false, since they
don't do any blocking operation in onFillable().
2014-09-26 10:13:16 +02:00
Simone Bordet a8b461fe91 Cosmetics: removed unused imports, cleaned up source code, improved javadocs. 2014-09-26 10:13:16 +02:00
Simone Bordet f1678124dc 444764 - HttpClient notifies callbacks for last chunk of content twice.
Fixed by filtering out notification of the callbacks in case the
HttpContent is already consumed.
2014-09-23 11:33:44 +02:00
Simone Bordet 1cd367ae7c 444764 - HttpClient notifies callbacks for last chunk of content twice.
Fixed by filtering out notification of the callbacks in case the
HttpContent is already consumed.
2014-09-22 18:16:49 +02:00
Simone Bordet 48510bc71a 444214 - Socks4Proxy fails when reading less than 8 bytes. 2014-09-16 21:37:51 +02:00
Simone Bordet f93c1cf593 444214 - Socks4Proxy fails when reading less than 8 bytes. 2014-09-16 21:20:45 +02:00
Simone Bordet 1878b344c7 Added SOCKS 4 tests. 2014-09-16 14:24:45 +02:00
Joakim Erdfelt 2481be42fe Adding timeouts for problematic test case 2014-09-11 10:47:43 -07:00
Simone Bordet ee3ab1f8ea Merged branch 'master' into 'jetty-http2'. 2014-09-01 11:57:09 +02:00
Simone Bordet 9dbd2cd9d8 442950 - Embedded Jetty client requests to localhost hangs with high cpu usage (NIO OP_CONNECT Solaris/Sparc).
Now checking the return value of SocketChannel.connect() to determine
whether to register the channel (true) or finish the connect (false).
2014-09-01 11:28:59 +02:00
Greg Wilkins 23eba39748 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-08-21 16:39:45 +10:00
Greg Wilkins 7584488702 javadoc 2014-08-21 09:43:35 +10:00
Simone Bordet 3ace246cff Catching Throwable instead of Exception. 2014-08-08 18:16:56 +02:00
Greg Wilkins eaf374fa58 refactored Dispatcher for new HttpURI 2014-07-25 17:28:35 +10:00
Greg Wilkins fa3d7d0f7e Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-servlet/src/test/java/org/eclipse/jetty/servlet/AsyncContextDispatchWithQueryStrings.java
2014-07-23 16:53:13 +10:00
Greg Wilkins 3a6879d3e8 expanded tabs in indents 2014-07-23 16:49:05 +10:00
Simone Bordet 467773dbdf Merged branch 'master' into 'jetty-http2'. 2014-07-22 21:14:46 +02:00
Simone Bordet dd914db3cf Reorganized GZIP tests. 2014-07-22 20:55:18 +02:00
Simone Bordet 52172fb3c4 440038 - Content decoding may fail.
Properly looping around the decoding step to ensure that the encoded
content is fully consumed.
2014-07-21 19:21:44 +02:00
Simone Bordet 816b85ea4d 439895 - No event callback should be invoked after the "failure" callback.
Fixed HttpSender and HttpReceiver to use a non-blocking collaborative
mechanism to notify callbacks.
Only the "failed" callback can run concurrently with other callbacks.
No other callback can run after the "complete" callback: a failure
concurrent with another callback will notify the "failed" callback,
finish the running callback and only then invoke the "complete" callback.
2014-07-21 16:48:21 +02:00
Greg Wilkins 853e020210 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-07-16 15:31:48 +10:00
Simone Bordet 745f757552 Guarded calls to LOG.debug() with if (LOG.isDebugEnabled()) to reduce allocation of varargs Object[]. 2014-07-15 18:49:14 +02:00
Greg Wilkins 4d2a580c2c 439375 preferred rfc7231 format is mime;charset=lowercase-9 2014-07-11 17:56:08 +10:00
Greg Wilkins 5e281dd449 Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-util/src/main/java/org/eclipse/jetty/util/IteratingCallback.java
2014-07-10 14:43:39 +10:00
Greg Wilkins 55ca09a00e 438190 findbug improvements 2014-07-10 14:41:32 +10:00
Greg Wilkins 706fe1eba3 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-07-03 16:01:37 +10:00
Greg Wilkins 7fbf521d4e 438204 correctly wrap IPv6 hostnames in URIs generated by jetty 2014-07-03 10:11:16 +10:00
Greg Wilkins 228600caf5 fixed race in HttpReceiverOverHTTPTest 2014-07-02 15:08:06 +10:00
Simone Bordet 2608af8f0d Merged branch 'origin/master' into 'jetty-http2'. 2014-06-26 11:54:50 +02:00
Simone Bordet f2f19ee3ba Improved changes introduced by a746d78. 2014-06-26 10:08:13 +02:00
Greg Wilkins a746d78951 438079 435322 Fixed Iterating Callback fail handling and removed per send instance 2014-06-25 19:20:03 +02:00
Simone Bordet e63ceabafe Merged branch 'origin/master' into 'jetty-http2'. 2014-06-25 17:29:36 +02:00
Simone Bordet 7b7c592fc8 Improved logging. 2014-06-25 17:26:04 +02:00
Simone Bordet 66f3913527 Merged branch 'origin/master' into 'jetty-http2'. 2014-06-25 12:34:19 +02:00
Simone Bordet 3ff4195dbc Guarded calls to LOG.debug() with if (LOG.isDebugEnabled()) to reduce allocation of varargs Object[]. 2014-06-25 12:26:45 +02:00
Simone Bordet aef2f42b5b FastCGI applications needs the Host header, which is missing in HTTP/2. 2014-06-18 11:18:48 +02:00
Greg Wilkins 272e1d8da5 Refactored HttpChannel to not have direct HttpParser dependency 2014-06-17 00:02:50 +02:00
Greg Wilkins bbd61f8e19 Multiple mixed in changes and improvements
Simplified HttpParser as per rfc7230
implemented local/remote hpack max table sizes
2014-06-11 15:16:40 +02:00
Simone Bordet 7918a58c71 Using Callback.Adapter.INSTANCE to avoid unneeded allocations. 2014-05-19 18:49:17 +02:00
Simone Bordet d75b9177c5 432939 - Jetty Client ContentResponse should have methods such as getContentType() and getMediaType().
Introduced ContentResponse.getMediaType() and ContentResponse .getEncoding(),
as well as BufferingResponseListener.getMediaType() to make the media
type and the encoding available to applications.
2014-05-15 10:58:49 +02:00
Simone Bordet b603964bb6 433089 - Client should provide Request.accept() method, like JAX-RS 2.0 Invocation.Builder.accept(). 2014-05-15 10:23:24 +02:00
Simone Bordet fa51281546 Avoided allocation of rarely used containers. 2014-05-15 09:59:31 +02:00
Simone Bordet eb1900d10b 428966 - Per-request cookie support. 2014-05-15 09:57:20 +02:00
Simone Bordet 660c05d399 URLEncoding also parameter names. 2014-05-15 09:09:41 +02:00
Simone Bordet c322ed4b90 419972 - Support sending forms (application/x-www-form-urlencoded).
Implemented introducing HttpClient.FORM() method and
FormContentProvider, based on Fields.
2014-05-14 23:54:26 +02:00
Simone Bordet bf7ab5d326 420368 - Default content types for ContentProviders.
Introduced ContentProvider.Typed to specify a content type along with
the content.
2014-05-14 23:54:25 +02:00
Simone Bordet be3848a371 433689 - Evict old HttpDestinations from HttpClient. 2014-05-14 11:34:34 +02:00
Simone Bordet a803465551 Invalidating the content decoders in case of Iterator.remove(). 2014-05-14 10:28:45 +02:00
Simone Bordet 521aa1d566 Improved Javadocs. 2014-05-14 09:58:10 +02:00
Simone Bordet 20dbde165e 434578 - Complete listener not called if redirected to an invalid URI.
Fixed by catching the exception and failing properly the redirect.
2014-05-11 11:22:39 +02:00
Simone Bordet d92ac8062b Avoid IllegalStateException in case of abort concurrent to header
generation.
2014-05-11 11:21:11 +02:00
Simone Bordet 0e4a903764 Removed deprecated getConversationID() method. 2014-05-11 10:14:03 +02:00
Greg Wilkins 51c5a4c833 425421 ContainerLifeCycle does not start added beans in started state 2014-05-05 14:53:53 +02:00
Simone Bordet c4b5e3d3d7 Introduced CompletableCallback to handle asynchronous content on clients. 2014-05-04 23:14:45 +02:00
Simone Bordet 9b388750fa 433916 - HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly.
Fixed by properly checking the HTTP version and whether the
Connection: keep-alive header is present.
2014-05-04 19:42:22 +02:00
Simone Bordet f628241875 433916 - HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly.
Fixed by properly checking the HTTP version and whether the
Connection: keep-alive header is present.
2014-05-04 16:03:26 +02:00
Simone Bordet a1d18a157d Added onReadFailure() callback to allow subclasses to perform actions
in case of read failures.
2014-05-02 22:45:56 +02:00
Simone Bordet 43454ebd0a Merged branch 'master' into '431642'. 2014-04-30 15:34:54 +02:00
Simone Bordet 906dc83691 431642 - Implement ProxyServlet using Servlet 3.1 async I/O.
Implemented correctly AsyncProxyServlet, tests passing.
2014-04-30 15:34:30 +02:00
Greg Wilkins 1c97fd3c42 433692 improved buffer resizing 2014-04-30 11:57:50 +02:00
Greg Wilkins 2e261b75d6 433692 improved buffer resizing 2014-04-29 20:36:13 +02:00
Simone Bordet ca67a9e10d Merged branch 'master' into '431642'. 2014-04-29 15:59:23 +02:00
Simone Bordet b4d1060e88 Avoid to null out the cookieStore field in doStop(), to prevent random NPEs while stopping. 2014-04-29 15:15:55 +02:00
Simone Bordet aeb27cd461 431642 - Implement ProxyServlet using Servlet 3.1 async I/O.
Intermediate commit that implements asynchronous content in HttpClient,
for the HTTP protocol, passing the tests.

This work needs to be extended to FCGI and SPDY and finally implement
the asynchronous proxy servlet.
2014-04-19 12:36:15 +02:00
Simone Bordet 04f4e6fb5b Merged branch 'master' into '431642'. 2014-04-18 15:08:53 +02:00
Simone Bordet f2e2eec4d5 Merged branch 'jetty-9.1.x' into 'master'. 2014-04-15 09:04:20 +02:00
Simone Bordet 361d8e5bd2 432528 - IllegalStateException when using DeferredContentProvider.
Fixed by using the correct idiom for calling the IteratingCallback.
2014-04-15 09:03:30 +02:00
Simone Bordet d6e538a9d2 Avoid duplicating existing headers when copying requests. 2014-04-15 09:03:30 +02:00
Simone Bordet 3717115059 Merged branch 'jetty-9.1.x' into 'master'. 2014-04-11 17:02:26 +02:00
Simone Bordet 5eeda38f0a 432270 - Slow requests with response content delimited by EOF fail.
Fixed also in the FastCGI module.
2014-04-11 16:18:38 +02:00
Simone Bordet 4975cae881 Further progress on 431642 (async proxy servlet). 2014-04-11 09:45:21 +02:00
Simone Bordet aebab6919c Improved IllegalStateException reporting. 2014-04-10 09:04:40 +02:00
Simone Bordet dfa2d05bcc 432270 - Slow requests with response content delimited by EOF fail.
Better handling of the idle case, and closing the connection only
if the response can be failed.
2014-04-10 09:04:11 +02:00
Simone Bordet 74d66a87f6 Made the test more reliable. 2014-04-10 09:03:19 +02:00
Simone Bordet 3cd7dfd445 432270 - Slow requests with response content delimited by EOF fail.
Fixed by using a flag to determine the need to close the connection,
and by closing the connection only at exchange termination.
2014-04-10 09:00:17 +02:00
Simone Bordet e3662a9b23 432145 - Pending request is not failed when HttpClient is stopped.
Fixed by fixing the code in close() to also abort pending exchanges.
Reviewed for HTTP, FastCGI and SPDY transports.
2014-04-10 08:59:30 +02:00
Simone Bordet 44fe5daa69 Restored proper logging level. 2014-04-09 18:33:23 +02:00
Simone Bordet 7e3c7f3588 Temporary commit to understand why HttpReceiverOverHTTPTest.test_Receive_GZIPResponseContent_Fragmented() fails.
To be reverted.
2014-04-09 01:33:20 +02:00
Simone Bordet a8de18379c Improved IllegalStateException reporting. 2014-04-09 00:08:30 +02:00
Simone Bordet 5f8513e67e 432270 - Slow requests with response content delimited by EOF fail.
Better handling of the idle case, and closing the connection only
if the response can be failed.
2014-04-08 17:38:04 +02:00
Simone Bordet dd8120294d Made the test more reliable. 2014-04-08 13:57:55 +02:00
Simone Bordet 2e7df0e16a 432270 - Slow requests with response content delimited by EOF fail.
Fixed by using a flag to determine the need to close the connection,
and by closing the connection only at exchange termination.
2014-04-08 13:57:27 +02:00
Simone Bordet 2897027f53 Merged branch 'master' into 'jetty-9.2.x'. 2014-04-07 17:51:23 +02:00
Simone Bordet cc0775133e 432145 - Pending request is not failed when HttpClient is stopped.
Fixed by fixing the code in close() to also abort pending exchanges.
Reviewed for HTTP, FastCGI and SPDY transports.
2014-04-07 17:39:29 +02:00
Simone Bordet b135920bfc Restored HttpSender tests. 2014-04-07 17:39:29 +02:00
Simone Bordet e56a76ef50 Restored HttpReceiver tests. 2014-04-07 17:39:28 +02:00
Greg Wilkins 0a748205f0 432122 ignore frequently failing test 2014-04-07 18:00:50 +10:00
Simone Bordet a96d7c388c Initial implementation of 431642 (async proxy servlet). 2014-04-01 15:45:52 +02:00
Greg Wilkins 81e14cf59d tests fail with new ISP? 2014-03-31 13:42:22 +11:00
Greg Wilkins 28445fc629 Merge remote-tracking branch 'origin/master' into jetty-9-alpn 2014-03-31 09:59:52 +11:00
Simone Bordet 1089a33578 Fixed imports referencing JUnit 3 and old matcher libraries. 2014-03-27 15:34:48 +01:00
Joakim Erdfelt 6cba8ee375 Sprinkling in some test timeouts for the Java 8 build 2014-03-25 10:43:38 -07:00
Simone Bordet cda4af3ec9 431103 - Complete listener not called if request times out before processing exchange.
Fixed by forcing the abort of the exchange in [Pooling|Multiplex]HttpDestination.
2014-03-25 18:18:14 +01:00
Simone Bordet 382bfebcae Removed code that should never run, and replaced it wil IllegalStateException. 2014-03-22 14:49:00 +01:00
Simone Bordet 565d17dc8c 430808 - OutputStreamContentProvider violates OutputStream contract.
Fixed OutputStreamContentProvider to perform blocking write() calls and
implemented OutputStream.flush().
HttpSender now notifies the ContentProvider iterator of write completion
and if it implements Callback.
This is used in DeferredContentProvider to provide a blocking flush()
functionality.
2014-03-21 21:15:31 +01:00
Simone Bordet 5c0aae2f12 Removed unused field in ResponseNotifier.
Catching Throwable in RequestNotifier and ResponseNotifier when
notifying listeners.
2014-03-21 21:15:31 +01:00
Simone Bordet 3e52b60452 428266 - HttpRequest mangles URI query string.
Now raw query string is preserved.
2014-02-21 16:24:52 +01:00
Simone Bordet 7db67ff58f Removed @SuppressWarnings("ForLoopReplaceableByForEach") because
it is a non standard warning not treated by the compiler but only
by IDEs. Relevant lines have comments in any case.
2014-02-21 14:50:45 +01:00
Simone Bordet 9356ab46da Made test more robust.
The check for the connection being closed may fail spuriously because
the notification of CompleteListener happens before the connection is
closed.
2014-02-06 11:56:25 +01:00
Simone Bordet f147362915 427512 - ReadPendingException in case of HTTP Proxy tunnelling.
Fixed by marking the old HttpConnection as "soft closed", that is
make it so that isClosed() returns true but the underlying EndPoint
is not closed.
This allows the HttpReceiver to skip the registration for fill
interest, so that the ReadPendingException is not thrown.
2014-02-05 21:30:06 +01:00
Simone Bordet cbdfd87d78 426870 - HTTP 1.0 Request with Connection: keep-alive and response
content hangs.

Fixed HttpGenerator to stay in the EOF_CONTENT mode if such case is
detected (while before it was moving to NO_CONTENT mode).
By staying in EOF_CONTENT mode the generator is made non-persistent
and eventually the connection is closed, signaling the end-of-content
to the client.
2014-01-29 11:20:00 +01:00
Simone Bordet 99b5b61b0b Simplified handling of "Connection: close" response header. 2014-01-14 22:51:18 +01:00
Simone Bordet 8720fb213c 425043 - Track whether pools are used correctly.
Introduced LeakDetector and utility classes LeakTrackingConnectionPool
and LeakTrackingByteBufferPool to track resource pool leakages.

Fixed ConnectionPool to be more precise in closing connections when
release() cannot recycle the connection.

Fixed a leak in server's HttpConnection in case a request arrives with
the Connection: close header: a ByteBuffer was allocated but never
released.
2014-01-07 19:44:29 +01:00
Simone Bordet 6cb93e026f Cosmetics. 2014-01-07 19:44:29 +01:00
Simone Bordet 69187e117d Added missing call to super.close(). 2014-01-07 19:44:29 +01:00
Simone Bordet 4722ac1720 Improved semantic of close() method, now executed only once. 2014-01-07 19:44:29 +01:00
Simone Bordet e94ff7db9c 424743 - Verify abort behavior in case the total timeout expires
before the connect timeout.

The changes to fix this issue uncovered problems in the HttpSender
state machine.
In particular, the SenderState is now defining more states that
depend on deferred content, and on handling of 100 Continue responses.

The refactoring also highlighted the fact that there was no need to
keep HttpConversation objects in a Map in HttpClient: they are now
only referenced by the HttpRequest.
With this change, Request.getConversationID() has been deprecated.

Also fixed a number of tests to make them more reliable.
2014-01-05 15:29:43 +01:00
Joakim Erdfelt a12fd9ea03 Happy New Year - 2014! 2014-01-02 14:50:14 -07:00
Simone Bordet 330e7f87d7 Removed check on the HttpSender.content field, that could lead to
NullPointerExceptions.

Checking whether the content was last and then acting was not atomic,
and the action being executed is designed to be run concurrently,
so the check was not needed.
2013-12-20 13:08:26 +01:00
Simone Bordet 8d621a9331 424043 - IteratingCallback Idle race.
A few renamings and fixes to avoid IllegalStateExceptions.
2013-12-15 23:51:04 +01:00
Simone Bordet 41fc2b8f87 424043 - IteratingCallback Idle race.
Renamed Next enum to Action, and renamed some constant of the State
enum to avoid confusion with the Action enum.

Simplified succeeded() and failed(Throwable) code,
covering also cases not covered before.

Fixed case SCHEDULED in succeeded() that was returning in case the
compareAndSet failed.

Fixed race in perform(), where 2 threads may execute concurrently
after having returned from process().

Vastly improved javadocs and comments.
2013-12-15 00:47:55 +01:00
Greg Wilkins 7141483356 424043 - IteratingCallback Idle race 2013-12-14 09:14:12 +11:00
Simone Bordet 5bbdbadec7 421795 - ContentProvider should have a method to release resources.
Implemented close of the request content based on the fact that the
Iterator returned by the content provider implements Closeable.
2013-12-13 18:47:38 +01:00
Simone Bordet b0c275837b 421794 - Iterator from InputStreamProvider is not implemented properly.
Now the iterator contract is better respected.
2013-12-13 16:32:14 +01:00
Simone Bordet 6473bbc2b6 424014 - PathContentProvider does not close its internal
SeekableByteChannel.

Fixed by closing the channel when it has been fully read and in case
of exceptions.
2013-12-13 14:27:13 +01:00
Simone Bordet 125cfe7e71 419911 - Empty chunk causes ArrayIndexOutOfBoundsException in
InputStreamResponseListener.

Fixed by adding relevant checks for zero-length content,
and not notifying listeners in such case.
2013-12-11 16:02:14 +01:00
Simone Bordet f2cc5295df 422264 - OutputStreamContentProvider does not work with Basic
Authentication.

Improved exception message in case of reuse of the same instance in
multiple requests.
2013-12-11 15:24:52 +01:00
Simone Bordet 6f87a9b995 Added test that verifies that the host header is correctly
overwritten by a user-provided value.
2013-12-10 16:59:54 +01:00
Greg Wilkins 1eb2997efd 421697 - IteratingCallback improvements
avoid wrapping writeCallback
Idle state added to IteratingCallback for SPDY
2013-11-21 14:52:39 +11:00
Simone Bordet 293efe9798 421198 - onComplete never call onComplete in
BufferingResponseListener in 9.1.

Introduced new method Request.onComplete(CompleteListener) to be able
to specify a CompleteListener even when using the blocking Request
.send() method.
2013-11-07 13:33:46 +01:00
Joakim Erdfelt aba3a41a34 More fixes for Windows build 2013-11-04 16:50:18 -07:00
Joakim Erdfelt 4bd1a041f7 Merge branch 'jetty-9.1' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project into jetty-9.1 2013-11-04 15:00:17 -07:00
Joakim Erdfelt 2c9ea8d4b7 Windows build fixes 2013-11-04 14:59:47 -07:00
Greg Wilkins f567bddad9 global clean up imports 2013-11-04 13:48:03 +11:00
Greg Wilkins eb3bb660b5 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/util/DigestAuthentication.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpReceiverTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpSenderTest.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpField.java
	jetty-server/src/test/java/org/eclipse/jetty/server/AbstractHttpTest.java
	jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/HeadersBlockGenerator.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/parser/HeadersBlockParser.java
	jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketFrame.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/DeflateCompressionMethodTest.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/PerMessageDeflateExtensionTest.java
2013-11-03 18:22:09 +11:00
Mikhail Mazursky 6b0269a16d [Bug 420930] Use Charset to specify character encoding
Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
2013-11-02 14:44:36 +06:00
Simone Bordet 3066b673e9 Merged branch 'master' into 'jetty-9.1'. 2013-10-28 11:18:09 +01:00
Simone Bordet 3a10aa4164 419964 - InputStreamContentProvider does not close provided
InputStream.

Now closing the provided InputStream when reading -1 or when an
exception is thrown.
2013-10-28 11:13:17 +01:00
Simone Bordet abac85e129 420364 - Bad synchronization in HttpConversation. 2013-10-25 14:55:48 +02:00
Simone Bordet b9fcd6695c Merged via cherry-pick branch 'master' into 'jetty-9.1'. 2013-10-25 14:21:11 +02:00
Simone Bordet a28e4730ad 420362 - Response/request listeners called too many times.
Wrapped on[Request|Response]XXX(XXXListener) listeners into their
specific interface so that they don't get notified multiple times.
2013-10-25 14:08:55 +02:00
Simone Bordet 2e434ef1e8 Refactored HttpDestinationOverHTTP into a PoolingHttpDestination
base class for reuse from other transports.
2013-10-25 13:02:33 +02:00
Joakim Erdfelt 5965e695fa Cleaning up modules 2013-10-24 14:06:50 -07:00
Simone Bordet 1df50f86f9 Improved logging and toString() implementations. 2013-10-22 19:17:35 +02:00
Simone Bordet 8d9fd6ad71 Improved connection/destination close, so that a connection can
always notify its destination that it has been closed.
2013-10-22 18:00:55 +02:00
Simone Bordet c705bb9480 Avoid overwrite of the abort cause. 2013-10-22 14:03:09 +02:00
Simone Bordet dcbc0d9a21 Merged branch 'master' into 'jetty-9.1'. 2013-10-22 13:34:06 +02:00
Simone Bordet 1ce2ec0007 420039 - BufferingResponseListener continues processing after
aborting request.
2013-10-22 13:33:19 +02:00
Simone Bordet 41eed8f836 419904 - Data corruption on proxy PUT requests.
Fixed InputStreamContentProvider to not reuse the byte[] to read from
the stream.
2013-10-22 12:40:32 +02:00
Simone Bordet eaefd17652 420012 - Improve ProxyServlet.Transparent configuration in case prefix="/". 2013-10-21 22:41:39 +02:00
Simone Bordet 0c80567c12 Using StandardCharset fields instead of Charset.forName(). 2013-10-21 16:14:18 +02:00
Simone Bordet 208382b07d Removed test dependencies on Ning's and Apache's HTTP client. 2013-10-21 11:27:23 +02:00
Simone Bordet 5cc0247a67 Merged branch 'master' into 'jetty-9.1'. 2013-10-21 10:49:15 +02:00
Simone Bordet 4b2756c4b0 419950 - Provide constructor for StringContentProvider that takes
Charset.
2013-10-21 10:48:34 +02:00
Simone Bordet df209b7b70 419901 - Client always adds extra user-agent header.
Fixed handling of the user agent header.
2013-10-21 10:42:41 +02:00
Simone Bordet 88541bef2f Merged branch 'master' into 'jetty-9.1'. 2013-10-21 10:41:01 +02:00
Simone Bordet 9fd27b2f8b 419901 - Client always adds extra user-agent header.
Added test case.
2013-10-21 10:39:37 +02:00
Simone Bordet 7520389c91 419901 - Client always adds extra user-agent header.
Improved test case.
2013-10-21 10:39:06 +02:00
Simone Bordet b46af29a42 419901 - Client always adds extra user-agent header.
Added test case.
2013-10-21 10:28:34 +02:00
Greg Wilkins c44537fca8 419899 Do not wrap SSL Exception as EoFException 2013-10-21 16:29:20 +11:00
Simone Bordet 2d6190da59 Refactored class Fields to a better API. 2013-10-18 13:55:49 +02:00
Simone Bordet c1832b29fb Merged branch 'master' into 'jetty-9.1'. 2013-10-17 12:37:37 +02:00
Simone Bordet 7618826349 419687 - HttpClient's query parameters must be case sensitive.
Modified class Fields to take a boolean parameter that defines
whether it is case sensitive or not, and updated HttpRequest to use
a case sensitive Fields instance for the query parameters.
2013-10-17 12:37:01 +02:00
Simone Bordet e408bd64c7 Improved HttpClient's proxy configuration by using Strings as
included and excluded addresses. This allows to pass in Strings such
as 127.0.0.1/8 or other wildcard formats.
2013-10-17 10:44:39 +02:00
Simone Bordet 45e6ac2a5d Javadocs: clarified that timeouts are in milliseconds. 2013-10-16 17:23:32 +02:00
Simone Bordet 114a95234b Merged branch 'master' into 'jetty-9.1'. 2013-10-16 16:30:04 +02:00
Simone Bordet 45828ee906 418892 - SSL session caching so unreliable it effectively does not
work.

Fixed by making sure that we completely decrypt read bytes.

Before the fix, it was possible that we returned after the decryption
of one TLS frame, while another was still present in the
_encryptedBuffer.
This lead to non-clean closes of the connection, which hampered the
capability of session reuse by clients.

Now we decrypt in a loop and only return if there is nothing more
that we can decrypt.
2013-10-16 16:27:36 +02:00
Simone Bordet 25d9b8704f 417356 - Add SOCKS support to jetty client.
Big refactoring to allow for additional proxy schemes that work at a
lower level than HTTP.

Introduced client-side ConnectionFactory, and binding that to a
HttpDestination, so that connections to that destination will use the
same ConnectionFactory.

The destination's ConnectionFactory is now initialized from the proxy
configuration and the transport, which is now itself a
ConnectionFactory.

The proxy configuration has also changed becoming polymorphic by
introducing a new ProxyConfiguration.Proxy abstract class,
which is implemented as HTTPProxy and can be implemented in future as
SOCKS4Proxy (and possibly others).
2013-10-08 15:06:39 +02:00
Jan Bartel 8cb1001007 Merge remote-tracking branch 'origin/master' into jetty-9.1 2013-10-01 09:12:43 +10:00
Jan Bartel a6f0883ca3 Remove explicit port number from jetty-client SslBytesClientTest 2013-10-01 09:05:05 +10:00
Greg Wilkins 6146f0cc9c cleanup threadpool usage 2013-09-30 14:07:17 +10:00
Greg Wilkins 070ce9dd22 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-start/src/main/java/org/eclipse/jetty/start/Main.java
	jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
2013-09-09 15:41:17 +10:00
Mikhail Mazursky 767faece5c [Bug 415999] Fix some of FindBugs warnings
Mostly not closed streams/DB resources are fixed. But also less
important things.

Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
2013-09-09 00:24:31 -04:00
Simone Bordet 3cdf4dece1 Refactored some behaviour to base classes to ease the FCGI
implementation, and taken the chance to remove redundant code.
2013-09-07 00:36:31 +02:00
Simone Bordet 4663fa4992 Renamed "Empty" inner classes to "Adapter" to comply with the rest of
the codebase.
2013-09-04 13:15:23 +02:00
Simone Bordet 3be5670448 413387 - onResponseHeaders is not called multiple times when multiple
redirects occur.

Refactored the redirection code into HttpRedirector to ease
applications that need to access the redirect URI and then redirect.
2013-09-04 12:57:02 +02:00
Simone Bordet e65f21634d 415047 - Create URIs lazily in HttpClient.
URIs are now created lazily, although a call to Request.getURI() is
made anyway for each request sending (and therefore the URI is
created anyway for each send). However, we save creating multiple
URIs in case the scheme, path, query or params are changed before
sending the request.
2013-09-04 09:58:20 +02:00
Simone Bordet f10562f269 Merged branch 'master' into 'jetty-9.1'. 2013-09-03 10:41:15 +02:00
Simone Bordet 78c322af8e 416314 - jetty async client wrong behaviour for HEAD Method + Redirect.
Fixed redirect behavior based on
http://greenbytes.de/tech/tc/httpredirects/.
2013-09-03 10:34:30 +02:00
Jesse McConnell ac30f5c9bd update other jetty mods to new format 2013-08-29 16:39:28 -05:00
Joakim Erdfelt 2e94149ea3 Merge branch 'jetty-9.1' into jetty-9.1-altstart 2013-08-23 11:49:41 -07:00
Jesse McConnell 725e405dac first pass for mod files for distribution 2013-08-22 11:53:58 -05:00
Greg Wilkins 59540abeda Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
	jetty-util/src/main/java/org/eclipse/jetty/util/IteratingCallback.java
2013-08-22 22:58:58 +10:00