Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Go to file
Simone Bordet 87c24e7258
Fixes #8405 - onAllDataRead() is called twice under h2 if the stream … (#10174)
* Fixes #8405 - onAllDataRead() is called twice under h2 if the stream times out

Per Servlet semantic, HTTP/2 stream timeout should be ignored.

The code was trying to fail the read via `_contentDemander.onTimeout()`, but
then it was still calling `onContentProducible()`, which was returning `true`
because the state of the read was IDLE (all the request content was read) and
the request was suspended.

Now the code checks if the read was really failed; if it is not, then
`onContentProducible()` is not called and so the idle timeout is ignored.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2023-07-31 15:13:50 +02:00
.github Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
.mvn Enable errorprone and spotbugs for java 17 (#7604) 2022-02-17 10:12:01 +10:00
apache-jsp Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
apache-jstl Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
build-resources Bump maven.surefire.plugin.version from 3.1.0 to 3.1.2 2023-07-05 22:06:32 +00:00
demos Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
documentation Fixes #10105 - Document that Request objects are not reusable. (#10113) 2023-07-17 16:44:44 +02:00
javadoc Issue #9631 - use correct artifactId for exclusions 2023-05-05 16:41:27 +10:00
jetty-alpn Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-annotations Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-ant Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-bom Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-cdi Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-client Fixes #10086 - Revisiting ProxyConfiguration.getProxies() (#10116) 2023-07-17 16:45:17 +02:00
jetty-deploy Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-fcgi Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-gcloud Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-hazelcast Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-home Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-http Use non-deprecated WOFF MIME type (#9922) 2023-06-22 11:47:53 +02:00
jetty-http-spi FIxes #9150 - Use default HttpExchange#setStreams implementation 2023-06-11 19:10:11 +02:00
jetty-http2 Fixes #8405 - onAllDataRead() is called twice under h2 if the stream … (#10174) 2023-07-31 15:13:50 +02:00
jetty-http3 Fixes #10120 - OOME caused by CyclicTimeouts. 2023-07-26 10:42:10 +02:00
jetty-infinispan Fixes #9795 - jetty-slf4j-impl is non-optional on some modules (#9800) 2023-06-05 06:37:05 -05:00
jetty-io Fixes #10145 - WritePendingException over HTTP/2 tunnel (#10146) 2023-07-26 22:59:24 +02:00
jetty-jaas Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-jaspi Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-jmx Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-jndi Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-jspc-maven-plugin Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-keystore Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-maven-plugin Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-memcached Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-nosql Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-openid Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-osgi Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-p2 Bump tycho-p2-repository-plugin from 3.0.4 to 4.0.0 2023-07-06 07:51:59 +00:00
jetty-plus Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-proxy Added test case to show how to handle zip content in AsyncMiddleManServlet. (#9986) 2023-07-17 11:03:57 +02:00
jetty-quic Fixes #10120 - OOME caused by CyclicTimeouts. 2023-07-26 10:42:10 +02:00
jetty-quickstart Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-rewrite Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-runner Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-security Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-server Improvements on suggested PR. 2023-07-17 23:21:55 +02:00
jetty-servlet Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-servlets Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-slf4j-impl Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-start Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-unixdomain-server Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-unixsocket Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-util Improvements on suggested PR. 2023-07-17 23:21:55 +02:00
jetty-util-ajax Updating to version 10.0.16-SNAPSHOT 2023-04-11 13:23:25 -05:00
jetty-webapp Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
jetty-websocket Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-10135-websocketFlush 2023-07-24 22:37:03 +10:00
jetty-xml Fix #10143 executable comparator (#10156) 2023-07-27 00:03:07 +02:00
logos Issue #4572 - Mechanical Change to use org.slf4j 2020-03-16 15:48:25 -05:00
scripts Fixing release script 2021-10-06 14:23:15 -05:00
tests Fixes #8405 - onAllDataRead() is called twice under h2 if the stream … (#10174) 2023-07-31 15:13:50 +02:00
.gitattributes Updating attributes 2020-09-25 09:48:38 -05:00
.gitignore Merge remote-tracking branch 'origin/jetty-9.4.x' into jetty-9.4.x-3550-QueuedThreadPool-cleanup 2019-04-25 06:53:07 +02:00
.lgtm.yml Create .lgtm.yml 2021-01-25 15:58:41 -05:00
CODE_COVERAGE.md http-spi test improvement (#62) 2016-05-04 10:56:56 +10:00
CODE_OF_CONDUCT.md Fixes #10107 (#10109) 2023-07-15 15:18:55 +02:00
CONTRIBUTING.md Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
Jenkinsfile Beef up `ci` profile to make it easier to run in the same modes on local machine 2023-03-01 13:08:51 -06:00
Jenkinsfile-autobahn Run WebSocket Autobahn test for all Jetty, Javax and Core APIs (#7430) 2022-01-31 15:29:41 +10:00
Jmh_Jenkinsfile Merge branch 'jetty-9.4.x' into jetty-10.0.x 2019-07-09 12:57:26 +10:00
KEYS.txt add GPG key and developer tag 2020-11-04 17:25:11 +01:00
LICENSE Issue #5784 - Fixing LICENSE file 2020-12-10 15:45:35 -06:00
NOTICE.txt Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
README.md Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
SECURITY.md Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00
VERSION.txt Update VERSION.txt: Jan is now using IntelliJ (#9666) 2023-05-03 19:24:24 +02:00
header-template.txt Happy no year 2023-02-15 15:22:32 +11:00
pom.xml Updating various old/moved URL references found across project (`jetty-10.0.x`) (#10098) 2023-07-14 12:38:45 -05:00

README.md

Eclipse Jetty Canonical Repository

This is the canonical repository for the Jetty project, feel free to fork and contribute now!

Submitting a patch or pull request?

Make sure you have an Eclipse Contributor Agreement (ECA) on file.

Project description

Jetty is a lightweight highly scalable java based web server and servlet engine. Our goal is to support web protocols like HTTP, HTTP/2 and WebSocket in a high volume low latency way that provides maximum performance while retaining the ease of use and compatibility with years of servlet development. Jetty is a modern fully async web server that has a long history as a component oriented technology easily embedded into applications while still offering a solid traditional distribution for webapp deployment.

Webapp Example

$ mkdir base && cd base
$ java -jar $JETTY_HOME/start.jar --add-modules=http,deploy
$ cp ~/src/myproj/target/mywebapp.war webapps
$ java -jar $JETTY_HOME/start.jar 

Embedded Example

Server server = new Server(port);
ServletContextHandler context = new ServletContextHandler(server, "/");
context.addServlet(MyServlet.class, "/*");
server.start();

Documentation

Project documentation is available on the Jetty Eclipse website.

Building

Apache Maven 3.8.0 and OpenJDK requirements:

Branch Maven Version Minimum JDK Recommended JDK
jetty-10.0.x Maven 3.8.6+ OpenJDK 11 OpenJDK 17 (for optional loom and http/3 support)
jetty-11.0.x Maven 3.8.6+ OpenJDK 11 OpenJDK 17 (for optional loom and http/3 support)
jetty-12.0.x Maven 3.8.6+ OpenJDK 17 OpenJDK 17

Full Build with All Tests:

mvn clean install

Fast Build if you need jars and distribution (not running tests, checkstyle, enforcer, license check):

mvn -Pfast clean install

Optional build tools:

  • graphviz - used by asciidoctor in the jetty-documentation build to produce various graphs
  • Docker - used to run some integration tests for testing third party integrations

Once the build is complete, you can find the built Jetty Maven artifacts in your Maven local repository. Along with the following locations of note:

Branches Location Description
all jetty-home/target/jetty-home-<ver>.tar.gz The Jetty Home standalone tarball
jetty-10.0.x jetty-runner/target/jetty-runner-<ver>.jar The Jetty Runner uber jar
jetty-11.0.x jetty-runner/target/jetty-runner-<ver>.jar The Jetty Runner uber jar
jetty-12.0.x jetty-ee10/jetty-ee10-runner/target/jetty-ee10-runner-<ver>.jar The Jetty Runner uber jar for ee10/Servlet 6 (jakarta.servlet) webapps
jetty-12.0.x jetty-ee9/jetty-ee9-runner/target/jetty-ee9-runner-<ver>.jar The Jetty Runner uber jar for ee9/Servlet 5 (jakarta.servlet) webapps
jetty-12.0.x jetty-ee8/jetty-ee8-runner/target/jetty-ee8-runner-<ver>.jar The Jetty Runner uber jar for ee8/Servlet 4 (javax.servlet) webapps

Note: The build tests do a lot of stress testing, and on some machines it is necessary to set the file descriptor limit to greater than 2048 for the tests to all pass successfully (check your ulimit -n value).

Professional Services

Expert advice and production support are available through Webtide.com.