Commit Graph

890 Commits

Author SHA1 Message Date
Joakim Erdfelt a7bcac6d75 Updating to version 9.3.20.v20170531 2017-08-08 09:07:35 -07:00
Joakim Erdfelt 11a544d6ac Updating to version 9.3.22-SNAPSHOT 2017-08-01 11:26:37 -07:00
Joakim Erdfelt bb1d69ca52 Updating to version 9.3.21.M0 2017-08-01 10:47:04 -07:00
Simone Bordet bfecc82ad1 Fixes #1687 - Missing callback notification when channel not found. 2017-07-24 11:35:41 +02:00
stephane martin 4f1e583b85 HTTP/2 :authority: declaration should omit default ports in jetty-client (#1611)
Change-Id: I2b4f8e8373e3ba16361a37fd1f6549a4a2d97d60
Signed-off-by: Stéphane Martin <stephane.martin@neotys.com>
2017-06-13 19:26:19 +02:00
Joakim Erdfelt 6a3c40e935 Updating to version 9.4.7-SNAPSHOT 2017-05-31 17:26:34 -07:00
Joakim Erdfelt 8ba0f2d95d Updating to version 9.4.6.v20170531 2017-05-31 16:22:52 -07:00
Joakim Erdfelt 429380d36a Updating to version 9.3.21-SNAPSHOT 2017-05-31 16:10:04 -07:00
Joakim Erdfelt 0f3b1cbe36 Updating to version 9.3.20.v20170531 2017-05-31 15:24:57 -07:00
Christoph Dreis e9f398cf41 Deprecate ConcurrentHashSet (#1570)
Signed-off-by: dreis2211 <christoph.dreis@freenet.de>
2017-05-30 21:46:11 +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
Joakim Erdfelt cf56168f7d Updating to version 9.3.20-SNAPSHOT 2017-05-02 15:26:56 -07:00
Joakim Erdfelt d36d57d5c7 Updating to version 9.3.19.v20170502 2017-05-02 14:31:51 -07:00
Joakim Erdfelt 782f36f157 Updating to version 9.4.6-SNAPSHOT 2017-05-02 14:29:09 -07:00
Joakim Erdfelt 9d8ad7489c Updating to version 9.4.5.v20170502 2017-05-02 13:22:18 -07:00
Simone Bordet 17caad898b Fixes #1506 - Make HttpChannels recycling configurable for HTTP/2. 2017-04-26 21:10:34 +02:00
Simone Bordet 8c26eddbc6 Fixes #1504 - Improve defaults for HTTP/2 flow control.
Defaults are now 16/8 MiB on the client, and 1/0.5 MiB on the server
for session/stream.
2017-04-26 10:43:54 +02:00
Simone Bordet f28a777662 Fixes #1404 - Jetty 9.4.2 does not support constructors with varargs in XML config files.
The issue was caused by a missing @Name annotation on the "protocols" parameter.
2017-04-21 11:06:49 +02:00
Joakim Erdfelt 92ea5bda21 Updating to version 9.4.5-SNAPSHOT 2017-04-14 14:43:36 -07:00
Joakim Erdfelt 3dc8f557c6 Updating to version 9.4.4.v20170414 2017-04-14 13:20:17 -07:00
Simone Bordet 2dce90c98d Improved handling of asynchronous failures. 2017-04-12 12:21:08 +02:00
Joakim Erdfelt 9e2aeda052 Updating to version 9.3.19-SNAPSHOT 2017-04-06 07:47:53 -07:00
Joakim Erdfelt 63273aa40b Updating to version 9.3.18.v20170406 2017-04-06 06:31:02 -07: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
Greg Wilkins f06c7c358f Fixes #1440
Improve low resource solution for scheduling strategy.

Replaced the dual scheduling strategy with a single re-implementation of EatWhatYouKill
that can adapt to act as ProduceConsume, ExectureProduceConsume or ProduceExecuteConsume
as need be.

Squashed commit of the following:

commit 25eeb32181
Author: Greg Wilkins <gregw@webtide.com>
Date:   Sat Apr 1 09:08:49 2017 +1100

    renamed variables

commit 4f370d84ca
Merge: 8159c50 823cbe1
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Mar 31 11:54:26 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit 8159c508f0
Merge: 5805a92 daf61cd
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 30 17:28:00 2017 +1100

    Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x-ewyk

commit daf61cd294
Author: Denis Nedelyaev <denvned@gmail.com>
Date:   Thu Mar 30 04:15:32 2017 +0300

    Fix memory leak in GzipHandler (#1429)

    Looks like this leak shows itself only with asynchronous responses.

    Some relevant info: http://www.devguli.com/blog/eng/java-deflater-and-outofmemoryerror/

    Signed-off-by: Denis Nedelyaev <denvned@gmail.com>

commit 5805a92d0e
Merge: cfabbd2 dc759db
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 30 17:12:38 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit cfabbd2341
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 30 16:04:57 2017 +1100

    minor cleanups

commit c7aa64aa10
Merge: bacf51a 18f17ac
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 30 14:58:37 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit bacf51a83d
Merge: 11ba4bc 2fafa1d
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 30 14:13:36 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit 11ba4bc849
Merge: 69003d3 1a0b2df
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 30 13:48:09 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit 69003d3dd9
Merge: f89b08d a8ff18d
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 30 12:35:27 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit f89b08d08a
Merge: 7a87c8e 00b42ca
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 23 16:01:00 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit 7a87c8ec9d
Merge: 1a92015 12dc169
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 23 10:27:14 2017 +1100

    Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-ewyk

commit 1a92015471
Author: Greg Wilkins <gregw@webtide.com>
Date:   Tue Mar 21 09:23:53 2017 +1100

    better spruious wakeup handling and other simplifications

commit c01a910b69
Merge: 0b2b9ea 67ec4b0
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Mar 17 14:59:37 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit 0b2b9ea187
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Mar 17 14:52:49 2017 +1100

    cleanup

commit c1d92ebde6
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Mar 17 13:41:45 2017 +1100

    Fixed push

commit d2d6bc3e65
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Mar 17 12:18:03 2017 +1100

    minor cleanups

commit c1a159b7a9
Merge: 01349ac 78f4712
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Mar 17 09:30:44 2017 +1100

    Merge branch 'jetty-9.4.x' into jetty-9.4.x-ewyk

commit 01349ac935
Merge: 4dc1503 08f351b
Author: Greg Wilkins <gregw@webtide.com>
Date:   Fri Mar 17 08:16:06 2017 +1100

    Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-ewyk

commit 4dc15032ba
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 16 23:26:59 2017 +1100

    work in progress

commit 5d18c654b8
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 16 22:05:03 2017 +1100

    work in progress

commit d52a09a6cd
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 16 18:03:16 2017 +1100

    work in progress

commit c097db32e7
Author: Greg Wilkins <gregw@webtide.com>
Date:   Thu Mar 16 15:59:29 2017 +1100

    Experiement enhancement to EatWhatYouKill ExecutionStrategy

    Use the existence of a pending producer threads to determine if low resources or not.
2017-04-01 09:18:37 +11:00
Greg Wilkins 1a0b2dfdb5 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-30 13:47:47 +11:00
John Gardiner Myers 9496cef9b2 Allow for easier subclassing of the HttpChannelOverHTTP2. (#1421)
Signed-off-by: John Gardiner Myers <jgmyers@proofpoint.com>
2017-03-30 12:17:52 +11:00
Joakim Erdfelt 1360b863dc Updating to version 9.4.4-SNAPSHOT 2017-03-17 10:53:54 -07:00
Joakim Erdfelt 95e94b49d8 Updating to version 9.4.3.v20170317 2017-03-17 09:54:58 -07:00
Joakim Erdfelt a6a0ab991f Updating to version 9.3.18-SNAPSHOT 2017-03-17 09:48:19 -07:00
Joakim Erdfelt 307d23975e Updating to version 9.3.17.v20170317 2017-03-17 09:07:39 -07:00
Greg Wilkins 9ccf0a5337 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2017-03-09 16:39:30 +11:00
Greg Wilkins 2219863c11 Issue #1340 Consistent optional use of query string in PushCacheFilter 2017-03-09 16:24:31 +11: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
Joakim Erdfelt 523fab30bd Updating to version 9.4.3-SNAPSHOT 2017-02-20 08:13:31 -07:00
Joakim Erdfelt 4a674b9cc9 Updating to version 9.4.2.v20170220 2017-02-20 06:22:45 -07: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 7e7459d825 Fixes #612 - Support HTTP Trailer.
Implemented support in the generic HttpChannel and Request classes.
Linked HTTP/1.1 and HTTP/2 trailers to call HttpChannel, so that trailers
are now available in Servlet APIs by casting to Jetty's Request class.
The semantic is that trailers will only be available _after_ reading
the request content.
2017-01-30 15:17:59 +01:00
Jan Bartel 0b45f377bf Issue #1290 2017-01-27 15:42:52 +11:00
Jesse McConnell d0c33ebe8b Updating to version 9.4.2-SNAPSHOT 2017-01-20 10:49:06 -06:00
Jesse McConnell 556ecbcdcf Updating to version 9.4.1.v20170120 2017-01-20 09:47:53 -06:00
Jesse McConnell 66b43ecda8 Updating to version 9.3.17-SNAPSHOT 2017-01-20 09:33:43 -06:00
Jesse McConnell df03355d00 Updating to version 9.3.16.v20170120 2017-01-20 09:06:48 -06: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
Simone Bordet 4e0800fa5a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-19 15:22:16 +01:00
Simone Bordet 4565c186d7 Fixes #1277 - http2 alpn test error. 2017-01-19 15:18:55 +01:00
Simone Bordet 6ab0e71b38 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-18 10:42:23 +01:00
Simone Bordet 732277c002 Converted IOException to EofException in case of client close or reset.
It's common for a client to either close the connection or reset a
stream, so EofException is a better exception to report since it will
be logged at DEBUG level by the server, reducing the noise in the logs.
2017-01-18 10:41:01 +01:00
Simone Bordet f8e3b1f9c2 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-17 11:38:45 +01:00
Simone Bordet 9e9ee03d7f Issue #1073 - JDK9 support in Jetty 9.3.x.
Fixed dependencies for modules that run tests that require ALPN.
2017-01-17 11:32:20 +01:00
Simone Bordet f0b9f1c557 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-13 19:06:07 +01:00
Simone Bordet a9fb678fe2 Issue #1073 - JDK9 support in Jetty 9.3.x.
Marked tests in module http2-alpn-tests for JDK 8 only, since
equivalent tests for JDK 9 would require use of JDK 9 only APIs.
2017-01-13 19:02:28 +01:00
Simone Bordet e539d0b1fd Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2017-01-12 17:52:45 +01:00
Simone Bordet 11d669092a Issue #1073 - JDK9 support in Jetty 9.3.x.
* Updated Maven plugins to versions that support JDK 9.
* Added jdk9 profiles to the build files.
* Introduced modules jetty-alpn-java-client and jetty-alpn-java-server
containing a pure JDK 9 implementation of ALPN.
* Wired ALPN connection factories (client and server) to use the proper
ALPN implementation based on the JDK platform version (8 or 9).
2017-01-12 15:41:02 +01:00
Greg Wilkins df0f645aa4 fix #1248 2017-01-12 11:29:56 +11:00
Simone Bordet 95c7e78eaf Issue #1220 - PushCacheFilter does not add the context path to pushed resources.
Now taking into account the context path to cache and push resources.
2017-01-05 16:32:41 +01:00
Simone Bordet c018eb5b92 Issue #1209 - IllegalStateException when HTTP/2 push is disabled.
Skipping filter logic when HTTP/2 push is disabled.
2016-12-31 12:19:46 +01:00
Simone Bordet a35cf71e93 Improved logging. 2016-12-30 22:01:23 +01:00
Joakim Erdfelt 7494914ff6 Updating to version 9.3.16-SNAPSHOT 2016-12-20 13:09:32 -07:00
Joakim Erdfelt 680ecd646b Updating to version 9.3.15.v20161220 2016-12-20 12:31:58 -07:00
Simone Bordet dd3a73e57a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-12-14 11:19:49 +01:00
Simone Bordet 98fad34ca0 Fixes #1167 - NPE while completing a reset HTTP/2 stream. 2016-12-14 11:09:10 +01:00
Simone Bordet 07c9bc5a51 Fixes #1169 - HTTP/2 reset on a stalled write does not unblock writer thread.
The fix notifies the transport when a reset frame is received,
allowing the transport to fail the write callback which then notifies
the application, either by throwing (in case of blocking writes) or
by calling error listeners.

Also added a guard, in HttpChannel.handle() for the ERROR_DISPATCH case,
that checks if the response is already committed, and if so, abort
the transport - similar to what's already there for 9.4.
2016-12-14 11:07:00 +01:00
Simone Bordet 3a3978f86b Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-12-13 10:16:36 +01:00
Simone Bordet bc3c3ff9c8 Improved logging. 2016-12-12 16:00:12 +01:00
Jesse McConnell 6a7e5dd4f5 Updating to version 9.4.1-SNAPSHOT 2016-12-08 09:41:50 -06:00
Jesse McConnell c54efb5929 Updating to version 9.4.0.v20161208 2016-12-08 08:56:45 -06:00
Jesse McConnell 19333b8b3b Merge branch 'jetty-9.4.x' into release-9.4.0 2016-12-08 08:50:15 -06:00
Simone Bordet a721e8b25d Fixes #1148 - Support HTTP/2 HEADERS trailer. 2016-12-08 10:08:56 +01:00
Jesse McConnell f8338b3f59 Updating to version 9.4.1-SNAPSHOT 2016-12-07 10:32:41 -06:00
Jesse McConnell dac1d17a2d Updating to version 9.4.0.v20161207 2016-12-07 09:47:30 -06:00
Greg Wilkins ec0b1ea847 Issue #1134 HPACK
Improved exceptions when receiving unknown index or a field that cannot be indexed.
2016-12-02 13:40:58 +11:00
Greg Wilkins daffbfc528 Issue #1134 HPACK
Improved exceptions when receiving unknown index or a field that cannot be indexed.
2016-12-02 13:35:53 +11:00
Greg Wilkins 3ea2d1cf95 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-12-02 13:01:26 +11:00
Greg Wilkins b6b33bd679 Issue #1134 HPACK
Added test that demonstrates large headers are incorrectly indexed
Do not index fields if too large to fit
2016-12-02 10:27:14 +11:00
Simone Bordet e78c117c01 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-11-14 22:30:08 +01:00
Simone Bordet 5e5d6913e6 Fixes #1099 - PushCacheFilter pushes POST requests. 2016-11-14 22:28:27 +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
Joakim Erdfelt 2c38511828 Updating to version 9.3.15-SNAPSHOT 2016-10-28 13:01:34 -07:00
Joakim Erdfelt 14611d2f76 Updating to version 9.3.14.v20161028 2016-10-28 12:21:02 -07:00
Simone Bordet c6ad87c3f9 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-10-27 16:55:12 +02:00
Simone Bordet 5ad8f2a777 Guarded against NPE if the channel is not associated with the stream. 2016-10-27 16:45:12 +02:00
Simone Bordet 8fef113372 Fixes #1046 - Improve HTTP2Flusher error report.
Now remembering the cause of the termination, and propagating it to
other components.
2016-10-27 15:43:41 +02:00
Simone Bordet b741b454af Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-10-25 15:45:56 +02:00
Simone Bordet 33eb768d69 Fixes #1029 - Restore Request.setHttpVersion().
Also cleaned up the asymmetry in MetaData between the setter
(setHttpVersion()) and the getter (getVersion()).
2016-10-25 15:45:29 +02:00
Joakim Erdfelt ade14ba34b Updating to version 9.3.14-SNAPSHOT 2016-10-14 11:33:51 -07:00
Joakim Erdfelt c3a78e70a8 Updating to version 9.3.13.v20161014 2016-10-14 10:39:37 -07:00
Greg Wilkins 9d475a624b Normalize tags #998 2016-10-13 10:06:17 +11:00
Greg Wilkins 91e9e7b76a Issue #984 Improve module listing 2016-10-06 17:01:08 +11:00
Greg Wilkins 4eca898ab0 fixed race in test 2016-10-05 16:20:45 +11:00
Jesse McConnell 863913b64e set for dev 2016-09-30 19:05:47 +00:00
Jesse McConnell b91cc8a4ea set for release 2016-09-30 18:01:20 +00:00
Simone Bordet 7e376fd9da Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-28 11:53:54 +02:00
Simone Bordet 0f97c3df5d Fixes #966 - Remove usages of ConcurrentArrayQueue. 2016-09-28 11:40:39 +02:00
Simone Bordet 6c4d6baa2e Returning longs for getMessagesIn() and getMessagesOut(). 2016-09-26 23:18:07 +02:00
Simone Bordet a292ef0652 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-26 15:52:18 +02:00
Simone Bordet 4fcf22a2c5 Fixes test after the changes for #960. 2016-09-26 15:51:25 +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 74b86bad35 Fixes #960 - Async I/O spin when reading early EOF.
AsyncIOServletTest is now testing HTTP/1.1 and HTTP/2 transports.
2016-09-26 11:49:57 +02:00
Simone Bordet a1a132a601 Fixes #959 - CompleteListener invoked twice for HTTP/2 transport and response content. 2016-09-26 10:16:31 +02:00
Simone Bordet 9551d0f62b Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-22 21:57:12 +02:00
Simone Bordet 4edc50b59f Fixes #948 - 9.4.0.RC0 jetty-distribution invalid config etc/jetty-http2c.xml.
Updated references to deprecated property initialStreamSendWindow
with initialStreamRecvWindow.
2016-09-22 21:48:08 +02:00
Joakim Erdfelt 6cf10172ca Updating to version 9.3.13-SNAPSHOT 2016-09-15 07:34:52 -07:00
Joakim Erdfelt 8b35fdc5a5 Updating to version 9.3.12.v20160915 2016-09-15 06:48:16 -07:00
Simone Bordet e3fcb018c4 Fixed merge from branch 'jetty-9.3.x'. 2016-09-14 21:53:35 +02:00
Simone Bordet 186ad447de Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-14 17:02:48 +02:00
Simone Bordet 464dd0667a Issue #922 - Implements methods Connection.getBytes[In|Out]().
Using int rather than long as return value for generated bytes.
2016-09-14 16:57:11 +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 aa00e4207d Issue #922 - Implements methods Connection.getBytes[In|Out]().
Implemented for HTTP/2.
2016-09-14 14:04:23 +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
Simone Bordet e21ad09e3a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-09-05 23:09:12 +02:00
Simone Bordet 705a68dfc4 Issue #845 - Improve blocking IO for data rate limiting.
Moved tests to run HTTP and HTTP/2 tests, and added more test cases.
2016-09-05 19:13:05 +02:00
Greg Wilkins 3d93d39b39 Issue #845 data rate limits
Initial thoughts
2016-08-16 16:24:14 +10:00
Simone Bordet 13f638f710 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-14 23:29:36 +02:00
Simone Bordet 11bc5cce66 Fixes #839 - Test Failure: MaxConcurrentStreamsTest.testOneConcurrentStream().
Fixed race condition where the prime request response was arriving to
the client before the server had finished to clean up and remove the
prime stream. Subsequent client requests were rejected because the
prime stream was still "alive".
2016-08-14 23:25:03 +02:00
Simone Bordet 0140d09997 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'.
Restored backwards compatibility on Stream.Listener interface.
2016-08-14 12:22:54 +02:00
Simone Bordet efc5265fe5 Improved javadocs. 2016-08-14 12:17:35 +02:00
Simone Bordet c5a2770790 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-12 17:12:25 +02:00
Simone Bordet ea20a5f2ef Fixes #836 - Test Failure: HttpClientTransportOverHTTP2Test.testLastStreamId()
Fixed race condition: the completion was happening before the stream
promise for the request was succeeded.
2016-08-12 17:10:43 +02:00
Simone Bordet 6f20feddcb Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-12 14:57:47 +02:00
Simone Bordet 9f9e9ecaf9 Changes for Issue #824 (#825)
* Issue #824 - Implement notifications of asynchronous error conditions for HTTP/2.

Introduced new method HttpChannelState.asyncError() to be called in
case of asynchronous errors, i.e. those errors that do not happen in
the HttpChannel.handle() loop.

Implemented HTTP/2 callbacks to call HttpChannelState.asyncError()
and plug in the existing error handling mechanism.

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

* Issue #824 - Implement notifications of asynchronous error conditions for HTTP/2.

Improved implementation to ignore idle timeouts for streams and
session in case that requests are being handled, matching the HTTP/1.1
behavior.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2016-08-12 11:02:52 +02:00
Simone Bordet c3b37cfbff Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-09 22:50:06 +02:00
John Gardiner Myers c1694ba9c3 Add protected HttpClientTransportOverHTTP2.getHttpClient() accessor
Signed-off-by: John Gardiner Myers <jgmyers@proofpoint.com>
2016-08-09 22:45:54 +02:00
Simone Bordet 3c38e92898 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-09 16:03:26 +02:00
Simone Bordet 5073ba4787 Fixes #826 - Better default for HTTP/2's max concurrent streams.
Defaulted to 128 max concurrent streams.
2016-08-09 16:02:34 +02:00
Simone Bordet 49214a9d61 Fixed compilation issue. 2016-08-08 23:24:59 +02:00
Simone Bordet f695d9cf31 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-08-06 12:31:47 +02:00
Simone Bordet 45695e08aa Fixes #792 - [HTTP/2] Socket seems to be not closed completely.
Now sending the GOAWAY and then disconnecting from doStop(), ensuring
that the underlying TCP connection is closed even if the server does
not close.
2016-08-06 12:31:20 +02:00
Simone Bordet 92c7b991d8 Code cleanups. 2016-08-06 12:31:20 +02:00
Greg Wilkins 9b0951d5c5 increase test timeout 2016-08-05 17:04:14 +10:00
Simone Bordet a38feda9a0 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-29 12:09:27 +02:00
Simone Bordet 2cdea3601b Fixes #790 - AsyncContentListener semantic broken with HTTP/2 transport.
Now using an IteratingCallback to buffer DATA frames and delivering
their content respecting AsyncContentListener semantic.
2016-07-29 12:08:55 +02:00
Joakim Erdfelt 2830e51e04 Merge branch 'jetty-9.3.x' into release-9.3.11 2016-07-28 12:20:36 -07:00
Joakim Erdfelt 87c8e1c019 Merge branch 'jetty-9.3.x' into jetty-9.4.x 2016-07-25 17:02:51 -07:00
Greg Wilkins e53ea55f48 Issue #752 SETTINGS_MAX_HEADER_LIST_SIZE
Defined missing status codes (removed old/wrong javadoc)
Changed use of 413 to 431
Received SETTINGS_MAX_HEADER_LIST_SIZE is set on hpack encoded and warning generated only for large responses.
2016-07-23 12:17:50 +10:00
Jesse McConnell 85af98b483 Merge branch 'jetty-9.3.x' into jetty-9.4.x 2016-07-22 12:08:40 -05:00
Joakim Erdfelt 6e1b1cdb36 Updating to version 9.3.12-SNAPSHOT 2016-07-21 19:07:19 -07:00
Joakim Erdfelt 9fd6d4354e Updating to version 9.3.11.v20160721 2016-07-21 18:37:09 -07:00
Greg Wilkins 849d51c07d Issue #752 - Implement support for HTTP2 SETTINGS_MAX_HEADER_LIST_SIZE.
Reverted to warning if a small SETTINGS_MAX_HEADER_LIST_SIZE. is received.
Setting it on the httpConfig effects all connections, not just the one the
setting was received from.
2016-07-22 09:52:52 +10:00
Simone Bordet cceec33f54 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-21 19:12:38 +02:00
Simone Bordet 088dc036b4 Fixes #752 - Implement support for HTTP2 SETTINGS_MAX_HEADER_LIST_SIZE. 2016-07-21 19:12:10 +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 cf0ecbd88f Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-21 17:50:08 +02:00
Simone Bordet 78d27c9a28 Fixes #755 - NPE in HttpChannelOverHTTP2.requestContent().
Fixed by recycling only channels that have completed normally by
having read the request content and responded.

Channels that don't read the request content won't be recycled, thus
avoiding the NPE.
2016-07-21 17:43:14 +02:00
Greg Wilkins 6e4abb3339 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-21 12:29:54 +10:00
Greg Wilkins 2db91a88cf HTTP2 SETTINGS_MAX_HEADER_LIST_SIZE #752 2016-07-21 12:28:32 +10:00
Greg Wilkins 950c4d4b70 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-21 11:12:26 +10:00
Greg Wilkins 2f4a6f29b7 Do not use ArrayQueue for HPACK #751 2016-07-21 11:07:55 +10:00
Simone Bordet 0d8f1b9e69 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-19 10:34:19 +02:00
Simone Bordet 766e5ab2ae Fixes #739 - Illegal WindowUpdate frame with delta=0.
Using compareAndSet() rather than getAndSet().
2016-07-19 10:33:43 +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 389eb68c3c Code cleanups. 2016-07-15 15:45:50 +02:00
Greg Wilkins 29bad418c1 Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-15 13:48:15 +10:00
Greg Wilkins 45ead1bb29 jetty http2 client parse error #726 2016-07-15 13:47:41 +10:00
Simone Bordet 9c472f959a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-14 16:19:18 +02:00
Simone Bordet 7172127236 Fixes #694 - http2.client.StreamResetTest.testServerExceptionConsumesQueuedData stack not suppressed in test 2016-07-14 16:18:55 +02:00
Simone Bordet d976b4d36a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-14 12:44:15 +02:00
Simone Bordet 2387d973ec Made test more robust on slower machines. 2016-07-14 12:43:33 +02:00
Greg Wilkins 34a9e43c50 restored long test timer 2016-07-14 15:17:50 +10:00
Simone Bordet 2954ef0fd8 Merge branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-07-13 20:10:08 +02:00
Simone Bordet 811549a06b Made test more robust on slower machines. 2016-07-13 20:06:42 +02:00
Jan Bartel 6628a42d5d Merge remote-tracking branch 'origin/jetty-9.3.x' into jetty-9.4.x 2016-07-13 15:32:03 +10:00
Greg Wilkins cb42ffc706 improved test timeouts 2016-07-13 15:23:46 +10:00
Greg Wilkins c27d71a5a8 Expose public constructor for #689 2016-07-13 11:59:46 +10:00
Greg Wilkins 4055146dcd Fix #671 Incorrect default SLPN protocol 2016-07-13 11:09:53 +10:00
Greg Wilkins cc842aff2b Issue #689 disable http2 draft versions 2016-07-06 13:17:50 +10:00
Jesse McConnell ae931538ab [maven-release-plugin] prepare for next development iteration 2016-06-22 13:59:10 -05:00
Jesse McConnell df1ed4fb03 [maven-release-plugin] prepare release jetty-9.3.11.M0 2016-06-22 13:59:06 -05:00
Jesse McConnell 030ec61837 [maven-release-plugin] prepare for next development iteration 2016-06-22 09:14:25 -05:00
Jesse McConnell 9a4cb41122 [maven-release-plugin] prepare release jetty-9.3.11.M0 2016-06-22 09:14:21 -05:00
Jesse McConnell e7034117ea [maven-release-plugin] prepare for next development iteration 2016-06-21 08:50:13 -05:00
Jesse McConnell 16c435c69d [maven-release-plugin] prepare release jetty-9.3.10.v20160621 2016-06-21 08:50:09 -05: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 442a7ce8cc Improved logging. 2016-06-20 23:10:44 +02:00
Simone Bordet 9632019e18 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-17 11:54:24 +02:00
Simone Bordet fdd1cd1e94 Fixes #647 - HTTP/2 CONTINUATION frame parsing throws IllegalStateException.
Added the missing "break" statement.
2016-06-17 11:53:58 +02:00
Simone Bordet 1cec689ece Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-06-17 10:26:16 +02:00
Simone Bordet 9d9f68da08 Reduced logging level for MAX_HEADER_LIST_SIZE. 2016-06-17 10:25:45 +02:00
Simone Bordet a8f25b550f Fixes #487 - JDK 9 build compatibility.
Fixes #306 - Merge jetty-parent into jetty-project.

- Removed jetty.parent dependency, moving all relevant sections to
jetty.project's pom.xml.
- Introduced profiles for JDK 8 only modules and configuration, and
for JDK 9 only modules and configurations.
- Major cleanup of pom.xml files.
- All Maven Plugin now declared in alphabetical order in
pluginManagement section of jetty.project's pom.xml.
2016-06-06 21:28:51 +02:00
Greg Wilkins 66ce47923e Issue #572 Ignore failing test pending further analysis 2016-06-03 09:08:44 +10: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
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 f6098497c0 Explicitly setting the EndPoint idle timeout in case
HttpClient.idleTimeout has changed after start().
2016-05-25 19:27:08 +02:00
Simone Bordet 6bf3607444 Fixed toString() NPE in case the stream is null. 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 b879b58909 Removed @Ignore from test. 2016-05-20 11:20:29 +02:00
Simone Bordet ee11e65a8a Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-20 11:18:23 +02:00
Simone Bordet c8c74da50a Issue #581 - Initial session recv window setting not working.
Updating the local session receive window before sending it to the client.
2016-05-20 11:17:50 +02:00
Simone Bordet 54ae36f8f1 Temporarily ignoring test.
The test fails because it hangs on session flow control window
exhaustion. Setting the session flow control window to large values
makes the test fail in a different way. Needs review.
2016-05-20 01:21:36 +02:00
Simone Bordet fab61b9157 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-20 01:12:51 +02:00
Simone Bordet d55aaa4a0c Improved logging. 2016-05-20 01:12:24 +02:00
Jesse McConnell dc4574f380 [maven-release-plugin] prepare for next development iteration 2016-05-17 17:30:17 -05:00
Jesse McConnell 0bbebec1e0 [maven-release-plugin] prepare release jetty-9.3.9.v20160517 2016-05-17 17:30:13 -05:00
Simone Bordet 039ced6e25 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-16 15:13:54 +02:00
Simone Bordet dee3331ffb Issue #572 - Don't reject HTTP/2 requests without body in low threads mode.
* Made ProduceExecuteConsume the default ExecutionFactory for HTTP/2.
* Made the HTTP/2 fillable callback non-blocking.
* Introduced configuration for the server initial session recv window.
* Sending a WINDOW_UPDATE frame at session setup to inform the client
 about the server session recv window.
2016-05-16 15:01:08 +02:00
Simone Bordet 67ea8db5aa Always copy the request metadata.
This is necessary because the HTTP/1.1 machinery will recycle the
Metadata.Request object, and it may race with a thread dispatch to
the HTTP/2 machinery that will handle the request.
2016-05-16 15:01:08 +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 242b6b5f66 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2016-05-12 18:59:40 +02:00
Simone Bordet 2a4cbdd111 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-12 00:22:31 +02:00
Simone Bordet 016fc6569f Fixes #558 - HTTP/2 server hangs when thread pool is low on threads.
Modified ExecuteProduceConsume to test for Rejectable tasks when
trying to execute a task in low threads mode, and if so, reject them
immediately.
2016-05-12 00:13:35 +02:00
Simone Bordet d8961139f3 Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-11 13:57:08 +02:00
Simone Bordet 1fc40864e1 Issue #558 (HTTP/2 server hangs when thread pool is low on threads).
Verify that rejecting tasks avoids hanging the server when in low
threads mode.
2016-05-11 13:05:16 +02:00
Simone Bordet 8ac23d187a Added tests to verify input data consumption.
Verify that input data is consumed at the end of a request handling,
either when input is not read and when an exception is thrown,
to make sure that the session flow control is not stalled.
2016-05-11 13:05:16 +02:00
Simone Bordet 19c63703ea Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2016-05-07 14:50:56 +02:00
Simone Bordet c14833a7f1 Fixes #552 (Improve HTTP/2 idle timeout handling)
Made sure that the stream idle timeout is reset for every stream read
and write.
Made sure that both the stream and the session idle timeouta are reset
for buffered data reads.
2016-05-07 14:45:34 +02:00
Greg Wilkins fb99534c73 deprecation cleanup 2016-05-05 12:03:42 +10:00
Simone Bordet a37fdcd0e2 Fixes #514 - Allow ExecutionStrategy to be configurable.
Introduced setters and constructor parameters to components that use
ExecutionStrategy.
2016-04-14 12:28:52 +02:00
Simone Bordet 6827c5b045 Fixes #514 - Allow ExecutionStrategy to be configurable.
Introduced setters and constructor parameters to components that use
ExecutionStrategy.
2016-04-14 12:20:31 +02:00
Joakim Erdfelt 6fb338e50d Updating to version 9.3.9-SNAPSHOT 2016-04-11 16:20:50 -07:00
Joakim Erdfelt bb4f3c4882 Updating to version 9.3.9.M1 2016-04-11 15:35:22 -07: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 abf0307e5e Merged branch 'jetty-9.3.x' into 'master'. 2016-04-11 12:56:09 +02:00
Simone Bordet 5c3e068cb3 Fixes #481 - Event response.success notified without waiting for content callback for HTTP/2 transport.
Improved fix, notifying the response.success event using a
CompletableCallback to avoid that HttpReceiver.responseContent()
fails the update from ResponseState.TRANSIENT.
2016-04-11 12:55:37 +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 68a465d7a3 Merged branch 'jetty-9.3.x' into 'master'. 2016-04-01 19:50:26 +02:00
Simone Bordet 4f68d44a50 Fixes #477 - HTTP/2 client transport must not send absolute-form :path pseudo-header.
Reducing the target to a path if it is in absolute-form.
2016-04-01 19:16:52 +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
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
Simone Bordet 5302d1972c Merged branch 'jetty-9.3.x' into 'master'. 2016-03-18 10:49:48 +01:00
Simone Bordet 0e0edbb6db Fixes #441 (Simplify direct HTTP/2 over TLS HttpClient usage)
Added useALPN property to HttpClientTransportOverHTTP2 to disable
usage of ALPN and therefore allow direct HTTP/2 over TLS.
2016-03-18 10:49:03 +01:00
Simone Bordet 966cc2dcba Merged branch 'jetty-9.3.x' into 'master'. 2016-03-16 22:14:31 +01:00
Simone Bordet 18aeca6567 Fixes #242 (Expose HTTP/2 LastStream error) 2016-03-16 22:14:09 +01:00
Joakim Erdfelt 3624339ec6 Merge branch 'jetty-9.3.x' 2016-03-16 10:29:29 -07:00
Joakim Erdfelt 13fde643ed Merge branch 'release-9.3.8' into jetty-9.3.x 2016-03-16 10:03:29 -07: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
Joakim Erdfelt c68d3b1d8d Updating to version 9.3.9-SNAPSHOT 2016-03-14 09:07:52 -07:00
Joakim Erdfelt 1f3b3f31f4 Updating to version 9.3.8.v20160314 2016-03-14 08:30:20 -07:00
Simone Bordet 87ea5ac039 Fixed tests. 2016-03-08 11:55:19 +01:00
Simone Bordet d4cd34d2ba Merged branch 'jetty-9.3.x' into 'master'. 2016-03-07 17:01:20 +01:00
Simone Bordet 8af356bc0d Issue #305 (NPE when notifying the session listener if the channel is closed before a session has been opened)
Added guard against NPE. It was needed since the connection may not
be present if the connect operation failed.
2016-03-07 17:00:52 +01:00
Simone Bordet 13f267bf8a Merged branch 'jetty-9.3.x' into 'master'. 2016-03-07 16:11:41 +01:00