Control: tags -1 + moreinfo confirmed On 2021-04-12 00:26:08 +0200, Emmanuel Bourg wrote: > Package: release.debian.org > Severity: normal > User: release.debian.org@packages.debian.org > Usertags: unblock > > Hi, > > This is a pre-upload request to unblock jetty9/9.4.39-1, this update fixes > 3 vulnerabilities (CVE-2021-28163, CVE-2021-28164 and CVE-2021-28165). ACK. Please remove the moreinfo tag once the version is available in unstable. Cheers > > The debdiff is attached below. > > Thank you, > > Emmanuel Bourg > > > unblock jetty9/9.4.38-1 > diff -Nru jetty9-9.4.38/aggregates/jetty-all/pom.xml jetty9-9.4.39/aggregates/jetty-all/pom.xml > --- jetty9-9.4.38/aggregates/jetty-all/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/aggregates/jetty-all/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/aggregates/jetty-all-compact3/pom.xml jetty9-9.4.39/aggregates/jetty-all-compact3/pom.xml > --- jetty9-9.4.38/aggregates/jetty-all-compact3/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/aggregates/jetty-all-compact3/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/apache-jsp/pom.xml jetty9-9.4.39/apache-jsp/pom.xml > --- jetty9-9.4.38/apache-jsp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/apache-jsp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>apache-jsp</artifactId> > diff -Nru jetty9-9.4.38/apache-jstl/pom.xml jetty9-9.4.39/apache-jstl/pom.xml > --- jetty9-9.4.38/apache-jstl/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/apache-jstl/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>apache-jstl</artifactId> > diff -Nru jetty9-9.4.38/build-resources/pom.xml jetty9-9.4.39/build-resources/pom.xml > --- jetty9-9.4.38/build-resources/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/build-resources/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <modelVersion>4.0.0</modelVersion> > <groupId>org.eclipse.jetty</groupId> > <artifactId>build-resources</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <packaging>jar</packaging> > <name>Jetty :: Build Resources</name> > > diff -Nru jetty9-9.4.38/debian/changelog jetty9-9.4.39/debian/changelog > --- jetty9-9.4.38/debian/changelog 2021-02-28 21:50:15.000000000 +0100 > +++ jetty9-9.4.39/debian/changelog 2021-04-12 00:11:03.000000000 +0200 > @@ -1,3 +1,19 @@ > +jetty9 (9.4.39-1) unstable; urgency=high > + > + * New upstream release > + - Fixed CVE-2021-28163: If a user uses a webapps directory that is a > + symlink, the contents of the webapps directory is deployed as a static > + webapp, inadvertently serving the webapps themselves and anything else > + that might be in that directory. > + - Fixes CVE-2021-28164: The default compliance mode allows requests with > + URIs that contain %2e or %2e%2e segments to access protected resources > + within the WEB-INF directory. This can reveal sensitive information > + regarding the implementation of a web application. > + - Fixes CVE-2021-28165: CPU usage can reach 100% upon receiving a large > + invalid TLS frame. > + > + -- Emmanuel Bourg <ebourg@apache.org> Mon, 12 Apr 2021 00:11:03 +0200 > + > jetty9 (9.4.38-1) unstable; urgency=medium > > * New upstream release > diff -Nru jetty9-9.4.38/examples/async-rest/async-rest-jar/pom.xml jetty9-9.4.39/examples/async-rest/async-rest-jar/pom.xml > --- jetty9-9.4.38/examples/async-rest/async-rest-jar/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/examples/async-rest/async-rest-jar/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>example-async-rest</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/examples/async-rest/async-rest-webapp/pom.xml jetty9-9.4.39/examples/async-rest/async-rest-webapp/pom.xml > --- jetty9-9.4.38/examples/async-rest/async-rest-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/examples/async-rest/async-rest-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>example-async-rest</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/examples/async-rest/pom.xml jetty9-9.4.39/examples/async-rest/pom.xml > --- jetty9-9.4.38/examples/async-rest/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/examples/async-rest/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.examples</groupId> > <artifactId>examples-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/examples/embedded/pom.xml jetty9-9.4.39/examples/embedded/pom.xml > --- jetty9-9.4.38/examples/embedded/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/examples/embedded/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.examples</groupId> > <artifactId>examples-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/examples/pom.xml jetty9-9.4.39/examples/pom.xml > --- jetty9-9.4.38/examples/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/examples/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-client/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-client/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-alpn-client</artifactId> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-conscrypt-client/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-conscrypt-client/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-conscrypt-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-conscrypt-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-conscrypt-client/src/test/java/org/eclipse/jetty/alpn/java/client/ConscryptHTTP2ClientTest.java jetty9-9.4.39/jetty-alpn/jetty-alpn-conscrypt-client/src/test/java/org/eclipse/jetty/alpn/java/client/ConscryptHTTP2ClientTest.java > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-conscrypt-client/src/test/java/org/eclipse/jetty/alpn/java/client/ConscryptHTTP2ClientTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-conscrypt-client/src/test/java/org/eclipse/jetty/alpn/java/client/ConscryptHTTP2ClientTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -43,9 +43,12 @@ > import org.junit.jupiter.api.Assumptions; > import org.junit.jupiter.api.Tag; > import org.junit.jupiter.api.Test; > +import org.junit.jupiter.api.condition.EnabledOnOs; > > import static org.junit.jupiter.api.Assertions.assertTrue; > +import static org.junit.jupiter.api.condition.OS.LINUX; > > +@EnabledOnOs({LINUX}) // TODO review if should be enabled on other OS > public class ConscryptHTTP2ClientTest > { > @Tag("external") > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-conscrypt-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-java-client/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-java-client/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-java-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-java-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-java-server/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-java-server/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-java-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-java-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-openjdk8-client/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-openjdk8-client/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-openjdk8-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-openjdk8-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-openjdk8-server/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-openjdk8-server/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-openjdk8-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-openjdk8-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-alpn/jetty-alpn-server/pom.xml jetty9-9.4.39/jetty-alpn/jetty-alpn-server/pom.xml > --- jetty9-9.4.38/jetty-alpn/jetty-alpn-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/jetty-alpn-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-alpn-server</artifactId> > diff -Nru jetty9-9.4.38/jetty-alpn/pom.xml jetty9-9.4.39/jetty-alpn/pom.xml > --- jetty9-9.4.38/jetty-alpn/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-alpn/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-alpn-parent</artifactId> > diff -Nru jetty9-9.4.38/jetty-annotations/pom.xml jetty9-9.4.39/jetty-annotations/pom.xml > --- jetty9-9.4.38/jetty-annotations/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-annotations/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-annotations</artifactId> > diff -Nru jetty9-9.4.38/jetty-ant/pom.xml jetty9-9.4.39/jetty-ant/pom.xml > --- jetty9-9.4.38/jetty-ant/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-ant/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-ant</artifactId> > diff -Nru jetty9-9.4.38/jetty-bom/pom.xml jetty9-9.4.39/jetty-bom/pom.xml > --- jetty9-9.4.38/jetty-bom/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-bom/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -9,7 +9,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <build> > @@ -53,336 +53,336 @@ > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>apache-jsp</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>apache-jstl</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-java-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-java-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-openjdk8-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-openjdk8-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-conscrypt-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-conscrypt-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-alpn-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-annotations</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-ant</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-continuation</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-deploy</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-distribution</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <type>zip</type> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-distribution</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <type>tar.gz</type> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.fcgi</groupId> > <artifactId>fcgi-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.fcgi</groupId> > <artifactId>fcgi-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.gcloud</groupId> > <artifactId>jetty-gcloud-session-manager</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-home</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <type>zip</type> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-home</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <type>tar.gz</type> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-http</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-common</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-hpack</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-http-client-transport</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-http-spi</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-common</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-remote-query</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-embedded-query</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-hazelcast</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-io</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-jaas</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-jaspi</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-jmx</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-jndi</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.memcached</groupId> > <artifactId>jetty-memcached-sessions</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-nosql</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-boot</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-boot-jsp</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-boot-warurl</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-httpservice</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-plus</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-proxy</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-quickstart</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-rewrite</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-security</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-openid</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-servlet</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-servlets</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-spring</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-unixsocket</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-util</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-util-ajax</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-webapp</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>javax-websocket-client-impl</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>javax-websocket-server-impl</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-api</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-client</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-common</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-server</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-servlet</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > <dependency> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-xml</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </dependency> > </dependencies> > </dependencyManagement> > diff -Nru jetty9-9.4.38/jetty-cdi/pom.xml jetty9-9.4.39/jetty-cdi/pom.xml > --- jetty9-9.4.38/jetty-cdi/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-cdi/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <groupId>org.eclipse.jetty</groupId> > diff -Nru jetty9-9.4.38/jetty-cdi/src/test/java/org/eclipse/jetty/embedded/EmbeddedWeldTest.java jetty9-9.4.39/jetty-cdi/src/test/java/org/eclipse/jetty/embedded/EmbeddedWeldTest.java > --- jetty9-9.4.38/jetty-cdi/src/test/java/org/eclipse/jetty/embedded/EmbeddedWeldTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-cdi/src/test/java/org/eclipse/jetty/embedded/EmbeddedWeldTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -167,7 +167,7 @@ > @Test > public void testWebappContext() throws Exception > { > - Server server = new Server(8080); > + Server server = new Server(0); > server.addConnector(new LocalConnector(server)); > WebAppContext webapp = new WebAppContext(); > webapp.setContextPath("/"); > @@ -199,7 +199,7 @@ > @Test > public void testWebappContextDiscovered() throws Exception > { > - Server server = new Server(8080); > + Server server = new Server(0); > server.addConnector(new LocalConnector(server)); > WebAppContext webapp = new WebAppContext(); > webapp.setContextPath("/"); > diff -Nru jetty9-9.4.38/jetty-client/pom.xml jetty9-9.4.39/jetty-client/pom.xml > --- jetty9-9.4.38/jetty-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > @@ -51,6 +51,7 @@ > <goal>shade</goal> > </goals> > <configuration> > + <minimizeJar>true</minimizeJar> > <shadedArtifactAttached>true</shadedArtifactAttached> > <shadedClassifierName>hybrid</shadedClassifierName> > <artifactSet> > diff -Nru jetty9-9.4.38/jetty-continuation/pom.xml jetty9-9.4.39/jetty-continuation/pom.xml > --- jetty9-9.4.38/jetty-continuation/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-continuation/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-continuation</artifactId> > diff -Nru jetty9-9.4.38/jetty-deploy/pom.xml jetty9-9.4.39/jetty-deploy/pom.xml > --- jetty9-9.4.38/jetty-deploy/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-deploy/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-deploy</artifactId> > diff -Nru jetty9-9.4.38/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/ScanningAppProvider.java jetty9-9.4.39/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/ScanningAppProvider.java > --- jetty9-9.4.38/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/ScanningAppProvider.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/ScanningAppProvider.java 2021-03-25 15:36:22.000000000 +0100 > @@ -49,7 +49,7 @@ > { > private static final Logger LOG = Log.getLogger(ScanningAppProvider.class); > > - private Map<String, App> _appMap = new HashMap<String, App>(); > + private final Map<String, App> _appMap = new HashMap<>(); > > private DeploymentManager _deploymentManager; > protected FilenameFilter _filenameFilter; > diff -Nru jetty9-9.4.38/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/WebAppProvider.java jetty9-9.4.39/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/WebAppProvider.java > --- jetty9-9.4.38/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/WebAppProvider.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-deploy/src/main/java/org/eclipse/jetty/deploy/providers/WebAppProvider.java 2021-03-25 15:36:22.000000000 +0100 > @@ -30,6 +30,8 @@ > import org.eclipse.jetty.util.URIUtil; > import org.eclipse.jetty.util.annotation.ManagedAttribute; > import org.eclipse.jetty.util.annotation.ManagedObject; > +import org.eclipse.jetty.util.log.Log; > +import org.eclipse.jetty.util.log.Logger; > import org.eclipse.jetty.util.resource.Resource; > import org.eclipse.jetty.webapp.WebAppContext; > import org.eclipse.jetty.xml.XmlConfiguration; > @@ -62,6 +64,8 @@ > @ManagedObject("Provider for start-up deployement of webapps based on presence in directory") > public class WebAppProvider extends ScanningAppProvider > { > + private static final Logger LOG = Log.getLogger(WebAppProvider.class); > + > private boolean _extractWars = false; > private boolean _parentLoaderPriority = false; > private ConfigurationManager _configurationManager; > @@ -74,28 +78,25 @@ > @Override > public boolean accept(File dir, String name) > { > - if (!dir.exists()) > - { > + if (dir == null || !dir.exists()) > return false; > - } > - String lowername = name.toLowerCase(Locale.ENGLISH); > > - File file = new File(dir, name); > - Resource r = Resource.newResource(file); > - if (getMonitoredResources().contains(r) && r.isDirectory()) > - { > - return false; > - } > + String lowerName = name.toLowerCase(Locale.ENGLISH); > + > + Resource resource = Resource.newResource(new File(dir, name)); > + for (Resource m : getMonitoredResources()) > + if (resource.isSame(m)) > + return false; > > // ignore hidden files > - if (lowername.startsWith(".")) > + if (lowerName.startsWith(".")) > return false; > > // Ignore some directories > - if (file.isDirectory()) > + if (resource.isDirectory()) > { > // is it a nominated config directory > - if (lowername.endsWith(".d")) > + if (lowerName.endsWith(".d")) > return false; > > // is it an unpacked directory for an existing war file? > @@ -107,18 +108,18 @@ > return false; > > //is it a sccs dir? > - return !"cvs".equals(lowername) && !"cvsroot".equals(lowername); // OK to deploy it then > + return !"cvs".equals(lowerName) && !"cvsroot".equals(lowerName); // OK to deploy it then > } > > // else is it a war file > - if (lowername.endsWith(".war")) > + if (lowerName.endsWith(".war")) > { > //defer deployment decision to fileChanged() > return true; > } > > - // else is it a context XML file > - return lowername.endsWith(".xml"); > + // else is it a context XML file > + return lowerName.endsWith(".xml"); > } > } > > diff -Nru jetty9-9.4.38/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/WebAppProviderTest.java jetty9-9.4.39/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/WebAppProviderTest.java > --- jetty9-9.4.38/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/WebAppProviderTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/providers/WebAppProviderTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -19,26 +19,38 @@ > package org.eclipse.jetty.deploy.providers; > > import java.io.File; > +import java.net.URL; > import java.nio.file.FileSystemException; > import java.nio.file.Files; > import java.nio.file.Path; > import java.util.Arrays; > +import java.util.HashMap; > +import java.util.List; > +import java.util.Map; > > import org.eclipse.jetty.deploy.test.XmlConfiguredJetty; > +import org.eclipse.jetty.server.Handler; > +import org.eclipse.jetty.server.Server; > +import org.eclipse.jetty.server.handler.HandlerCollection; > import org.eclipse.jetty.toolchain.test.MavenTestingUtils; > import org.eclipse.jetty.toolchain.test.jupiter.WorkDir; > import org.eclipse.jetty.toolchain.test.jupiter.WorkDirExtension; > +import org.eclipse.jetty.util.IO; > +import org.eclipse.jetty.webapp.WebAppContext; > import org.junit.jupiter.api.AfterEach; > import org.junit.jupiter.api.BeforeEach; > import org.junit.jupiter.api.Disabled; > import org.junit.jupiter.api.Test; > +import org.junit.jupiter.api.condition.EnabledOnOs; > import org.junit.jupiter.api.extension.ExtendWith; > > +import static org.junit.jupiter.api.Assertions.assertEquals; > import static org.junit.jupiter.api.Assertions.assertFalse; > import static org.junit.jupiter.api.Assertions.assertTrue; > import static org.junit.jupiter.api.Assumptions.assumeTrue; > +import static org.junit.jupiter.api.condition.OS.LINUX; > +import static org.junit.jupiter.api.condition.OS.MAC; > > -@Disabled("See issue #1200") > @ExtendWith(WorkDirExtension.class) > public class WebAppProviderTest > { > @@ -49,7 +61,8 @@ > @BeforeEach > public void setupEnvironment() throws Exception > { > - jetty = new XmlConfiguredJetty(testdir.getEmptyPathDir()); > + Path p = testdir.getEmptyPathDir(); > + jetty = new XmlConfiguredJetty(p); > jetty.addConfiguration("jetty.xml"); > jetty.addConfiguration("jetty-http.xml"); > jetty.addConfiguration("jetty-deploy-wars.xml"); > @@ -86,6 +99,7 @@ > jetty.stop(); > } > > + @Disabled("See issue #1200") > @Test > public void testStartupContext() > { > @@ -101,7 +115,8 @@ > // Test for correct behaviour > assertTrue(hasJettyGeneratedPath(workDir, "foo.war"), "Should have generated directory in work directory: " + workDir); > } > - > + > + @Disabled("See issue #1200") > @Test > public void testStartupSymlinkContext() > { > @@ -119,7 +134,105 @@ > File workDir = jetty.getJettyDir("workish"); > assertTrue(hasJettyGeneratedPath(workDir, "bar.war"), "Should have generated directory in work directory: " + workDir); > } > + > + @Test > + @EnabledOnOs({LINUX}) > + public void testWebappSymlinkDir() throws Exception > + { > + jetty.stop(); //reconfigure jetty > + > + testdir.ensureEmpty(); > + > + jetty = new XmlConfiguredJetty(testdir.getEmptyPathDir()); > + jetty.addConfiguration("jetty.xml"); > + jetty.addConfiguration("jetty-http.xml"); > + jetty.addConfiguration("jetty-deploy-wars.xml"); > > + assumeTrue(symlinkSupported); > + > + //delete the existing webapps directory > + File webapps = jetty.getJettyDir("webapps"); > + assertTrue(IO.delete(webapps)); > + > + //make a different directory to contain webapps > + File x = jetty.getJettyDir("x"); > + Files.createDirectory(x.toPath()); > + > + //Put a webapp into it > + File srcDir = MavenTestingUtils.getTestResourceDir("webapps"); > + File fooWar = new File(x, "foo.war"); > + IO.copy(new File(srcDir, "foo-webapp-1.war"), fooWar); > + assertTrue(Files.exists(fooWar.toPath())); > + > + //make a link from x to webapps > + Files.createSymbolicLink(jetty.getJettyDir("webapps").toPath(), x.toPath()); > + assertTrue(Files.exists(jetty.getJettyDir("webapps").toPath())); > + > + jetty.load(); > + jetty.start(); > + > + //only webapp in x should be deployed, not x itself > + jetty.assertWebAppContextsExists("/foo"); > + } > + > + @Test > + @EnabledOnOs({LINUX}) > + public void testBaseDirSymlink() throws Exception > + { > + jetty.stop(); //reconfigure jetty > + > + testdir.ensureEmpty(); > + > + Path realBase = testdir.getEmptyPathDir(); > + > + //set jetty up on the real base > + jetty = new XmlConfiguredJetty(realBase); > + jetty.addConfiguration("jetty.xml"); > + jetty.addConfiguration("jetty-http.xml"); > + jetty.addConfiguration("jetty-deploy-wars.xml"); > + > + //Put a webapp into the base > + jetty.copyWebapp("foo-webapp-1.war", "foo.war"); > + > + //create the jetty structure > + jetty.load(); > + jetty.start(); > + Path jettyHome = jetty.getJettyHome().toPath(); > + > + jetty.stop(); > + > + //Make a symbolic link to the real base > + File testsDir = MavenTestingUtils.getTargetTestingDir(); > + Path symlinkBase = Files.createSymbolicLink(testsDir.toPath().resolve("basedirsymlink-" + System.currentTimeMillis()), jettyHome); > + Map<String, String> properties = new HashMap<>(); > + properties.put("jetty.home", jettyHome.toString()); > + //Start jetty, but this time running from the symlinked base > + System.setProperty("jetty.home", properties.get("jetty.home")); > + > + List<URL> configurations = jetty.getConfigurations(); > + Server server = XmlConfiguredJetty.loadConfigurations(configurations, properties); > + > + try > + { > + server.start(); > + HandlerCollection handlers = (HandlerCollection)server.getHandler(); > + Handler[] children = server.getChildHandlersByClass(WebAppContext.class); > + assertEquals(1, children.length); > + assertEquals("/foo", ((WebAppContext)children[0]).getContextPath()); > + } > + finally > + { > + server.stop(); > + } > + } > + > + private Map<String, String> setupJettyProperties(Path jettyHome) > + { > + Map<String, String> properties = new HashMap<>(); > + properties.put("jetty.home", jettyHome.toFile().getAbsolutePath()); > + return properties; > + } > + > private static boolean hasJettyGeneratedPath(File basedir, String expectedWarFilename) > { > File[] paths = basedir.listFiles(); > diff -Nru jetty9-9.4.38/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/test/XmlConfiguredJetty.java jetty9-9.4.39/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/test/XmlConfiguredJetty.java > --- jetty9-9.4.38/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/test/XmlConfiguredJetty.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-deploy/src/test/java/org/eclipse/jetty/deploy/test/XmlConfiguredJetty.java 2021-03-25 15:36:22.000000000 +0100 > @@ -31,6 +31,7 @@ > import java.net.UnknownHostException; > import java.nio.file.Path; > import java.util.ArrayList; > +import java.util.Collections; > import java.util.HashMap; > import java.util.List; > import java.util.Map; > @@ -69,6 +70,51 @@ > private String _scheme = HttpScheme.HTTP.asString(); > private File _jettyHome; > > + public static Server loadConfigurations(List<URL> configurations, Map<String, String> properties) > + throws Exception > + { > + XmlConfiguration last = null; > + Object[] obj = new Object[configurations.size()]; > + > + // Configure everything > + for (int i = 0; i < configurations.size(); i++) > + { > + URL configURL = configurations.get(i); > + XmlConfiguration configuration = new XmlConfiguration(configURL); > + if (last != null) > + configuration.getIdMap().putAll(last.getIdMap()); > + configuration.getProperties().putAll(properties); > + obj[i] = configuration.configure(); > + last = configuration; > + } > + > + // Test for Server Instance. > + Server foundServer = null; > + int serverCount = 0; > + for (int i = 0; i < configurations.size(); i++) > + { > + if (obj[i] instanceof Server) > + { > + if (obj[i].equals(foundServer)) > + { > + // Identical server instance found > + break; > + } > + foundServer = (Server)obj[i]; > + serverCount++; > + } > + } > + > + if (serverCount <= 0) > + { > + throw new Exception("Load failed to configure a " + Server.class.getName()); > + } > + > + assertEquals(1, serverCount, "Server load count"); > + > + return foundServer; > + } > + > public XmlConfiguredJetty(Path testdir) throws IOException > { > _xmlConfigurations = new ArrayList<>(); > @@ -77,11 +123,11 @@ > String jettyHomeBase = testdir.toString(); > // Ensure we have a new (pristene) directory to work with. > int idx = 0; > - _jettyHome = new File(jettyHomeBase + "#" + idx); > + _jettyHome = new File(jettyHomeBase + "--" + idx); > while (_jettyHome.exists()) > { > idx++; > - _jettyHome = new File(jettyHomeBase + "#" + idx); > + _jettyHome = new File(jettyHomeBase + "--" + idx); > } > deleteContents(_jettyHome); > // Prepare Jetty.Home (Test) dir > @@ -152,6 +198,11 @@ > { > _xmlConfigurations.add(xmlConfig); > } > + > + public List<URL> getConfigurations() > + { > + return Collections.unmodifiableList(_xmlConfigurations); > + } > > public void assertNoWebAppContexts() > { > @@ -325,46 +376,7 @@ > > public void load() throws Exception > { > - XmlConfiguration last = null; > - Object[] obj = new Object[this._xmlConfigurations.size()]; > - > - // Configure everything > - for (int i = 0; i < this._xmlConfigurations.size(); i++) > - { > - URL configURL = this._xmlConfigurations.get(i); > - XmlConfiguration configuration = new XmlConfiguration(configURL); > - if (last != null) > - configuration.getIdMap().putAll(last.getIdMap()); > - configuration.getProperties().putAll(_properties); > - obj[i] = configuration.configure(); > - last = configuration; > - } > - > - // Test for Server Instance. > - Server foundServer = null; > - int serverCount = 0; > - for (int i = 0; i < this._xmlConfigurations.size(); i++) > - { > - if (obj[i] instanceof Server) > - { > - if (obj[i].equals(foundServer)) > - { > - // Identical server instance found > - break; > - } > - foundServer = (Server)obj[i]; > - serverCount++; > - } > - } > - > - if (serverCount <= 0) > - { > - throw new Exception("Load failed to configure a " + Server.class.getName()); > - } > - > - assertEquals(1, serverCount, "Server load count"); > - > - this._server = foundServer; > + this._server = loadConfigurations(_xmlConfigurations, _properties); > this._server.setStopTimeout(10); > } > > diff -Nru jetty9-9.4.38/jetty-distribution/pom.xml jetty9-9.4.39/jetty-distribution/pom.xml > --- jetty9-9.4.38/jetty-distribution/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-distribution/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-distribution</artifactId> > diff -Nru jetty9-9.4.38/jetty-fcgi/fcgi-client/pom.xml jetty9-9.4.39/jetty-fcgi/fcgi-client/pom.xml > --- jetty9-9.4.38/jetty-fcgi/fcgi-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-fcgi/fcgi-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.fcgi</groupId> > <artifactId>fcgi-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-fcgi/fcgi-server/pom.xml jetty9-9.4.39/jetty-fcgi/fcgi-server/pom.xml > --- jetty9-9.4.38/jetty-fcgi/fcgi-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-fcgi/fcgi-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.fcgi</groupId> > <artifactId>fcgi-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-fcgi/pom.xml jetty9-9.4.39/jetty-fcgi/pom.xml > --- jetty9-9.4.38/jetty-fcgi/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-fcgi/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-gcloud/jetty-gcloud-session-manager/pom.xml jetty9-9.4.39/jetty-gcloud/jetty-gcloud-session-manager/pom.xml > --- jetty9-9.4.38/jetty-gcloud/jetty-gcloud-session-manager/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-gcloud/jetty-gcloud-session-manager/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.gcloud</groupId> > <artifactId>gcloud-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-gcloud/pom.xml jetty9-9.4.39/jetty-gcloud/pom.xml > --- jetty9-9.4.38/jetty-gcloud/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-gcloud/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-hazelcast/pom.xml jetty9-9.4.39/jetty-hazelcast/pom.xml > --- jetty9-9.4.38/jetty-hazelcast/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-hazelcast/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-embedded.mod jetty9-9.4.39/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-embedded.mod > --- jetty9-9.4.38/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-embedded.mod 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-embedded.mod 2021-03-25 15:36:22.000000000 +0100 > @@ -13,14 +13,17 @@ > sessions > > [files] > -maven://com.hazelcast/hazelcast/3.12.10|lib/hazelcast/hazelcast-3.12.10.jar > +maven://com.hazelcast/hazelcast/${hazelcast.version}|lib/hazelcast/hazelcast-${hazelcast.version}.jar > > [xml] > etc/sessions/hazelcast/default.xml > > [lib] > lib/jetty-hazelcast-${jetty.version}.jar > -lib/hazelcast/*.jar > +lib/hazelcast/hazelcast-${hazelcast.version}.jar > + > +[ini] > +hazelcast.version?=3.12.10 > > [license] > Hazelcast is an open source project hosted on Github and released under the Apache 2.0 license. > diff -Nru jetty9-9.4.38/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-remote.mod jetty9-9.4.39/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-remote.mod > --- jetty9-9.4.38/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-remote.mod 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-hazelcast/src/main/config/modules/session-store-hazelcast-remote.mod 2021-03-25 15:36:22.000000000 +0100 > @@ -13,15 +13,19 @@ > sessions > > [files] > -maven://com.hazelcast/hazelcast/3.12.10|lib/hazelcast/hazelcast-3.12.10.jar > -maven://com.hazelcast/hazelcast-client/3.12.6|lib/hazelcast/hazelcast-client-3.12.10.jar > +maven://com.hazelcast/hazelcast/${hazelcast.version}|lib/hazelcast/hazelcast-${hazelcast.version}.jar > +maven://com.hazelcast/hazelcast-client/${hazelcast.version}|lib/hazelcast/hazelcast-client-${hazelcast.version}.jar > > [xml] > etc/sessions/hazelcast/remote.xml > > [lib] > lib/jetty-hazelcast-${jetty.version}.jar > -lib/hazelcast/*.jar > +lib/hazelcast/hazelcast-${hazelcast.version}.jar > +lib/hazelcast/hazelcast-client-${hazelcast.version}.jar > + > +[ini] > +hazelcast.version?=3.12.10 > > [license] > Hazelcast is an open source project hosted on Github and released under the Apache 2.0 license. > diff -Nru jetty9-9.4.38/jetty-home/pom.xml jetty9-9.4.39/jetty-home/pom.xml > --- jetty9-9.4.38/jetty-home/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-home/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-home</artifactId> > diff -Nru jetty9-9.4.38/jetty-home/src/main/resources/modules/hawtio.mod jetty9-9.4.39/jetty-home/src/main/resources/modules/hawtio.mod > --- jetty9-9.4.38/jetty-home/src/main/resources/modules/hawtio.mod 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-home/src/main/resources/modules/hawtio.mod 2021-03-25 15:36:22.000000000 +0100 > @@ -17,7 +17,7 @@ > [files] > etc/hawtio/ > lib/hawtio/ > -https://oss.sonatype.org/content/repositories/public/io/hawt/hawtio-default/1.4.16/hawtio-default-1.4.16.war|lib/hawtio/hawtio.war > +maven://io.hawt/hawtio-default/1.4.16|lib/hawtio/hawtio.war > basehome:modules/hawtio/hawtio.xml|etc/hawtio.xml > > [license] > diff -Nru jetty9-9.4.38/jetty-home/src/main/resources/modules/jminix.mod jetty9-9.4.39/jetty-home/src/main/resources/modules/jminix.mod > --- jetty9-9.4.38/jetty-home/src/main/resources/modules/jminix.mod 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-home/src/main/resources/modules/jminix.mod 2021-03-25 15:36:22.000000000 +0100 > @@ -18,12 +18,12 @@ > [files] > lib/jminix/ > maven://org.jminix/jminix/1.1.0|lib/jminix/jminix-1.1.0.jar > -http://maven.restlet.com/org/restlet/org.restlet/1.1.5/org.restlet-1.1.5.jar|lib/jminix/org.restlet-1.1.5.jar > -http://maven.restlet.com/org/restlet/org.restlet.ext.velocity/1.1.5/org.restlet.ext.velocity-1.1.5.jar|lib/jminix/org.restlet.ext.velocity-1.1.5.jar > +https://maven.restlet.talend.com/org/restlet/org.restlet/1.1.5/org.restlet-1.1.5.jar|lib/jminix/org.restlet-1.1.5.jar > +https://maven.restlet.talend.com/org/restlet/org.restlet.ext.velocity/1.1.5/org.restlet.ext.velocity-1.1.5.jar|lib/jminix/org.restlet.ext.velocity-1.1.5.jar > maven://org.apache.velocity/velocity/1.5|lib/jminix/velocity-1.5.jar > maven://oro/oro/2.0.8|lib/jminix/oro-2.0.8.jar > -http://maven.restlet.com/com/noelios/restlet/com.noelios.restlet/1.1.5/com.noelios.restlet-1.1.5.jar|lib/jminix/com.noelios.restlet-1.1.5.jar > -http://maven.restlet.com/com/noelios/restlet/com.noelios.restlet.ext.servlet/1.1.5/com.noelios.restlet.ext.servlet-1.1.5.jar|lib/jminix/com.noelios.restlet.ext.servlet-1.1.5.jar > +https://maven.restlet.talend.com/com/noelios/restlet/com.noelios.restlet/1.1.5/com.noelios.restlet-1.1.5.jar|lib/jminix/com.noelios.restlet-1.1.5.jar > +https://maven.restlet.talend.com/com/noelios/restlet/com.noelios.restlet.ext.servlet/1.1.5/com.noelios.restlet.ext.servlet-1.1.5.jar|lib/jminix/com.noelios.restlet.ext.servlet-1.1.5.jar > maven://net.sf.json-lib/json-lib/2.2.3/jar/jdk15|lib/jminix/json-lib-2.2.3-jdk15.jar > maven://commons-lang/commons-lang/2.4|lib/jminix/commons-lang-2.4.jar > maven://commons-beanutils/commons-beanutils/1.7.0|lib/jminix/commons-beanutils-1.7.0.jar > diff -Nru jetty9-9.4.38/jetty-http/pom.xml jetty9-9.4.39/jetty-http/pom.xml > --- jetty9-9.4.38/jetty-http/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-http</artifactId> > diff -Nru jetty9-9.4.38/jetty-http2/http2-alpn-tests/pom.xml jetty9-9.4.39/jetty-http2/http2-alpn-tests/pom.xml > --- jetty9-9.4.38/jetty-http2/http2-alpn-tests/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http2/http2-alpn-tests/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-http2/http2-client/pom.xml jetty9-9.4.39/jetty-http2/http2-client/pom.xml > --- jetty9-9.4.38/jetty-http2/http2-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http2/http2-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-http2/http2-common/pom.xml jetty9-9.4.39/jetty-http2/http2-common/pom.xml > --- jetty9-9.4.38/jetty-http2/http2-common/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http2/http2-common/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-http2/http2-hpack/pom.xml jetty9-9.4.39/jetty-http2/http2-hpack/pom.xml > --- jetty9-9.4.38/jetty-http2/http2-hpack/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http2/http2-hpack/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-http2/http2-http-client-transport/pom.xml jetty9-9.4.39/jetty-http2/http2-http-client-transport/pom.xml > --- jetty9-9.4.38/jetty-http2/http2-http-client-transport/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http2/http2-http-client-transport/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-http2/http2-server/pom.xml jetty9-9.4.39/jetty-http2/http2-server/pom.xml > --- jetty9-9.4.38/jetty-http2/http2-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http2/http2-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.http2</groupId> > <artifactId>http2-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-http2/pom.xml jetty9-9.4.39/jetty-http2/pom.xml > --- jetty9-9.4.38/jetty-http2/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http2/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-http-spi/pom.xml jetty9-9.4.39/jetty-http-spi/pom.xml > --- jetty9-9.4.38/jetty-http-spi/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-http-spi/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-http-spi</artifactId> > diff -Nru jetty9-9.4.38/jetty-infinispan/infinispan-common/pom.xml jetty9-9.4.39/jetty-infinispan/infinispan-common/pom.xml > --- jetty9-9.4.38/jetty-infinispan/infinispan-common/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-infinispan/infinispan-common/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>infinispan-common</artifactId> > diff -Nru jetty9-9.4.38/jetty-infinispan/infinispan-embedded/pom.xml jetty9-9.4.39/jetty-infinispan/infinispan-embedded/pom.xml > --- jetty9-9.4.38/jetty-infinispan/infinispan-embedded/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-infinispan/infinispan-embedded/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>infinispan-embedded</artifactId> > diff -Nru jetty9-9.4.38/jetty-infinispan/infinispan-embedded-query/pom.xml jetty9-9.4.39/jetty-infinispan/infinispan-embedded-query/pom.xml > --- jetty9-9.4.38/jetty-infinispan/infinispan-embedded-query/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-infinispan/infinispan-embedded-query/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>infinispan-embedded-query</artifactId> > diff -Nru jetty9-9.4.38/jetty-infinispan/infinispan-remote/pom.xml jetty9-9.4.39/jetty-infinispan/infinispan-remote/pom.xml > --- jetty9-9.4.38/jetty-infinispan/infinispan-remote/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-infinispan/infinispan-remote/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>infinispan-remote</artifactId> > diff -Nru jetty9-9.4.38/jetty-infinispan/infinispan-remote-query/pom.xml jetty9-9.4.39/jetty-infinispan/infinispan-remote-query/pom.xml > --- jetty9-9.4.38/jetty-infinispan/infinispan-remote-query/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-infinispan/infinispan-remote-query/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>infinispan-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>infinispan-remote-query</artifactId> > @@ -138,5 +138,10 @@ > <artifactId>testcontainers</artifactId> > <scope>test</scope> > </dependency> > + <dependency> > + <groupId>org.testcontainers</groupId> > + <artifactId>junit-jupiter</artifactId> > + <scope>test</scope> > + </dependency> > </dependencies> > </project> > diff -Nru jetty9-9.4.38/jetty-infinispan/infinispan-remote-query/src/test/java/org/eclipse/jetty/server/session/infinispan/RemoteQueryManagerTest.java jetty9-9.4.39/jetty-infinispan/infinispan-remote-query/src/test/java/org/eclipse/jetty/server/session/infinispan/RemoteQueryManagerTest.java > --- jetty9-9.4.38/jetty-infinispan/infinispan-remote-query/src/test/java/org/eclipse/jetty/server/session/infinispan/RemoteQueryManagerTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-infinispan/infinispan-remote-query/src/test/java/org/eclipse/jetty/server/session/infinispan/RemoteQueryManagerTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -49,11 +49,13 @@ > import org.testcontainers.containers.GenericContainer; > import org.testcontainers.containers.output.Slf4jLogConsumer; > import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; > +import org.testcontainers.junit.jupiter.Testcontainers; > > import static org.junit.jupiter.api.Assertions.assertEquals; > import static org.junit.jupiter.api.Assertions.assertNotNull; > import static org.junit.jupiter.api.Assertions.assertTrue; > > +@Testcontainers(disabledWithoutDocker = true) > public class RemoteQueryManagerTest > { > public static final String DEFAULT_CACHE_NAME = "remote-session-test"; > diff -Nru jetty9-9.4.38/jetty-infinispan/pom.xml jetty9-9.4.39/jetty-infinispan/pom.xml > --- jetty9-9.4.38/jetty-infinispan/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-infinispan/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-io/pom.xml jetty9-9.4.39/jetty-io/pom.xml > --- jetty9-9.4.38/jetty-io/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-io/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-io</artifactId> > diff -Nru jetty9-9.4.38/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java jetty9-9.4.39/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java > --- jetty9-9.4.38/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java 2021-03-25 15:36:22.000000000 +0100 > @@ -729,8 +729,15 @@ > return filled = -1; > > case BUFFER_UNDERFLOW: > + if (BufferUtil.space(_encryptedInput) == 0) > + { > + BufferUtil.clear(_encryptedInput); > + throw new SSLHandshakeException("Encrypted buffer max length exceeded"); > + } > + > if (netFilled > 0) > continue; // try filling some more > + > _underflown = true; > if (netFilled < 0 && _sslEngine.getUseClientMode()) > { > @@ -739,7 +746,7 @@ > { > Throwable handshakeFailure = new SSLHandshakeException("Abruptly closed by peer"); > if (closeFailure != null) > - handshakeFailure.initCause(closeFailure); > + handshakeFailure.addSuppressed(closeFailure); > throw handshakeFailure; > } > return filled = -1; > diff -Nru jetty9-9.4.38/jetty-jaas/pom.xml jetty9-9.4.39/jetty-jaas/pom.xml > --- jetty9-9.4.38/jetty-jaas/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-jaas/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-jaas</artifactId> > diff -Nru jetty9-9.4.38/jetty-jaspi/pom.xml jetty9-9.4.39/jetty-jaspi/pom.xml > --- jetty9-9.4.38/jetty-jaspi/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-jaspi/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-jmh/pom.xml jetty9-9.4.39/jetty-jmh/pom.xml > --- jetty9-9.4.38/jetty-jmh/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-jmh/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-jmx/pom.xml jetty9-9.4.39/jetty-jmx/pom.xml > --- jetty9-9.4.38/jetty-jmx/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-jmx/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-jmx</artifactId> > diff -Nru jetty9-9.4.38/jetty-jndi/pom.xml jetty9-9.4.39/jetty-jndi/pom.xml > --- jetty9-9.4.38/jetty-jndi/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-jndi/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-jndi</artifactId> > diff -Nru jetty9-9.4.38/jetty-jspc-maven-plugin/pom.xml jetty9-9.4.39/jetty-jspc-maven-plugin/pom.xml > --- jetty9-9.4.38/jetty-jspc-maven-plugin/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-jspc-maven-plugin/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-jspc-maven-plugin</artifactId> > diff -Nru jetty9-9.4.38/jetty-maven-plugin/pom.xml jetty9-9.4.39/jetty-maven-plugin/pom.xml > --- jetty9-9.4.38/jetty-maven-plugin/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-maven-plugin/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-maven-plugin</artifactId> > diff -Nru jetty9-9.4.38/jetty-memcached/jetty-memcached-sessions/pom.xml jetty9-9.4.39/jetty-memcached/jetty-memcached-sessions/pom.xml > --- jetty9-9.4.38/jetty-memcached/jetty-memcached-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-memcached/jetty-memcached-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.memcached</groupId> > <artifactId>memcached-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-memcached/pom.xml jetty9-9.4.39/jetty-memcached/pom.xml > --- jetty9-9.4.38/jetty-memcached/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-memcached/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-nosql/pom.xml jetty9-9.4.39/jetty-nosql/pom.xml > --- jetty9-9.4.38/jetty-nosql/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-nosql/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-nosql</artifactId> > diff -Nru jetty9-9.4.38/jetty-openid/pom.xml jetty9-9.4.39/jetty-openid/pom.xml > --- jetty9-9.4.38/jetty-openid/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-openid/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-osgi/jetty-osgi-alpn/pom.xml jetty9-9.4.39/jetty-osgi/jetty-osgi-alpn/pom.xml > --- jetty9-9.4.38/jetty-osgi/jetty-osgi-alpn/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/jetty-osgi-alpn/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-osgi-alpn</artifactId> > diff -Nru jetty9-9.4.38/jetty-osgi/jetty-osgi-boot/pom.xml jetty9-9.4.39/jetty-osgi/jetty-osgi-boot/pom.xml > --- jetty9-9.4.38/jetty-osgi/jetty-osgi-boot/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/jetty-osgi-boot/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-osgi-boot</artifactId> > diff -Nru jetty9-9.4.38/jetty-osgi/jetty-osgi-boot-jsp/pom.xml jetty9-9.4.39/jetty-osgi/jetty-osgi-boot-jsp/pom.xml > --- jetty9-9.4.38/jetty-osgi/jetty-osgi-boot-jsp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/jetty-osgi-boot-jsp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-osgi-boot-jsp</artifactId> > diff -Nru jetty9-9.4.38/jetty-osgi/jetty-osgi-boot-warurl/pom.xml jetty9-9.4.39/jetty-osgi/jetty-osgi-boot-warurl/pom.xml > --- jetty9-9.4.38/jetty-osgi/jetty-osgi-boot-warurl/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/jetty-osgi-boot-warurl/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-osgi/jetty-osgi-httpservice/pom.xml jetty9-9.4.39/jetty-osgi/jetty-osgi-httpservice/pom.xml > --- jetty9-9.4.38/jetty-osgi/jetty-osgi-httpservice/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/jetty-osgi-httpservice/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-httpservice</artifactId> > diff -Nru jetty9-9.4.38/jetty-osgi/pom.xml jetty9-9.4.39/jetty-osgi/pom.xml > --- jetty9-9.4.38/jetty-osgi/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-osgi/test-jetty-osgi/pom.xml jetty9-9.4.39/jetty-osgi/test-jetty-osgi/pom.xml > --- jetty9-9.4.38/jetty-osgi/test-jetty-osgi/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/test-jetty-osgi/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-osgi/test-jetty-osgi-context/pom.xml jetty9-9.4.39/jetty-osgi/test-jetty-osgi-context/pom.xml > --- jetty9-9.4.38/jetty-osgi/test-jetty-osgi-context/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/test-jetty-osgi-context/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>test-jetty-osgi-context</artifactId> > diff -Nru jetty9-9.4.38/jetty-osgi/test-jetty-osgi-fragment/pom.xml jetty9-9.4.39/jetty-osgi/test-jetty-osgi-fragment/pom.xml > --- jetty9-9.4.38/jetty-osgi/test-jetty-osgi-fragment/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/test-jetty-osgi-fragment/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-osgi/test-jetty-osgi-server/pom.xml jetty9-9.4.39/jetty-osgi/test-jetty-osgi-server/pom.xml > --- jetty9-9.4.38/jetty-osgi/test-jetty-osgi-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/test-jetty-osgi-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>test-jetty-osgi-server</artifactId> > diff -Nru jetty9-9.4.38/jetty-osgi/test-jetty-osgi-webapp/pom.xml jetty9-9.4.39/jetty-osgi/test-jetty-osgi-webapp/pom.xml > --- jetty9-9.4.38/jetty-osgi/test-jetty-osgi-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/test-jetty-osgi-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-osgi/test-jetty-osgi-webapp-resources/pom.xml jetty9-9.4.39/jetty-osgi/test-jetty-osgi-webapp-resources/pom.xml > --- jetty9-9.4.38/jetty-osgi/test-jetty-osgi-webapp-resources/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-osgi/test-jetty-osgi-webapp-resources/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.osgi</groupId> > <artifactId>jetty-osgi-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>test-jetty-osgi-webapp-resources</artifactId> > diff -Nru jetty9-9.4.38/jetty-plus/pom.xml jetty9-9.4.39/jetty-plus/pom.xml > --- jetty9-9.4.38/jetty-plus/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-plus/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-plus</artifactId> > diff -Nru jetty9-9.4.38/jetty-proxy/pom.xml jetty9-9.4.39/jetty-proxy/pom.xml > --- jetty9-9.4.38/jetty-proxy/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-proxy/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-proxy</artifactId> > diff -Nru jetty9-9.4.38/jetty-quickstart/pom.xml jetty9-9.4.39/jetty-quickstart/pom.xml > --- jetty9-9.4.38/jetty-quickstart/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-quickstart/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <groupId>org.eclipse.jetty</groupId> > diff -Nru jetty9-9.4.38/jetty-rewrite/pom.xml jetty9-9.4.39/jetty-rewrite/pom.xml > --- jetty9-9.4.38/jetty-rewrite/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-rewrite/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-rewrite</artifactId> > diff -Nru jetty9-9.4.38/jetty-runner/pom.xml jetty9-9.4.39/jetty-runner/pom.xml > --- jetty9-9.4.38/jetty-runner/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-runner/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-runner</artifactId> > diff -Nru jetty9-9.4.38/jetty-security/pom.xml jetty9-9.4.39/jetty-security/pom.xml > --- jetty9-9.4.38/jetty-security/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-security/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-security</artifactId> > diff -Nru jetty9-9.4.38/jetty-server/pom.xml jetty9-9.4.39/jetty-server/pom.xml > --- jetty9-9.4.38/jetty-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-server</artifactId> > diff -Nru jetty9-9.4.38/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java jetty9-9.4.39/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java > --- jetty9-9.4.38/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java 2021-03-25 15:36:22.000000000 +0100 > @@ -1824,7 +1824,8 @@ > setMethod(request.getMethod()); > HttpURI uri = request.getURI(); > > - if (uri.isAmbiguous()) > + boolean ambiguous = uri.isAmbiguous(); > + if (ambiguous) > { > // replaced in jetty-10 with URICompliance from the HttpConfiguration > Connection connection = _channel == null ? null : _channel.getConnection(); > @@ -1852,6 +1853,13 @@ > else if (encoded.startsWith("/")) > { > path = (encoded.length() == 1) ? "/" : uri.getDecodedPath(); > + > + // Strictly speaking if a URI is legal and encodes ambiguous segments, then they should be > + // reflected in the decoded string version. However, previous behaviour was to always normalize > + // so we will continue to do so. If an application wishes to see ambiguous URIs, then they can look > + // at the encoded form of the URI > + if (ambiguous) > + path = URIUtil.canonicalPath(path); > } > else if ("*".equals(encoded) || HttpMethod.CONNECT.is(getMethod())) > { > diff -Nru jetty9-9.4.38/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java jetty9-9.4.39/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java > --- jetty9-9.4.38/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java 2021-03-25 15:36:22.000000000 +0100 > @@ -1667,29 +1667,56 @@ > if (LOG.isDebugEnabled()) > LOG.debug("Got Session ID {} from cookie {}", id, sessionCookie); > > - HttpSession s = getHttpSession(id); > - > - if (requestedSessionId == null) > - { > - //no previous id, always accept this one > - requestedSessionId = id; > - session = s; > - } > - else if (requestedSessionId.equals(id)) > - { > - //really a bad request, but will forgive the duplication > - } > - else if (session == null || !isValid(session)) > + if (session == null) > { > - //no previous session or invalid, accept this one > - requestedSessionId = id; > - session = s; > + //we currently do not have a session selected, use this one if it is valid > + HttpSession s = getHttpSession(id); > + if (s != null && isValid(s)) > + { > + //associate it with the request so its reference count is decremented as the > + //request exits > + requestedSessionId = id; > + session = s; > + baseRequest.enterSession(session); > + baseRequest.setSession(session); > + > + if (LOG.isDebugEnabled()) > + LOG.debug("Selected session {}", session); > + } > + else > + { > + if (LOG.isDebugEnabled()) > + LOG.debug("No session found for session cookie id {}", id); > + > + //if we don't have a valid session id yet, just choose the current id > + if (requestedSessionId == null) > + requestedSessionId = id; > + } > } > else > { > - //previous session is valid, use it unless both valid > - if (s != null && isValid(s)) > - throw new BadMessageException("Duplicate valid session cookies: " + requestedSessionId + "," + id); > + //we currently have a valid session selected. We will throw an error > + //if there is a _different_ valid session id cookie. Duplicate ids, or > + //invalid session ids are ignored > + if (!session.getId().equals(getSessionIdManager().getId(id))) > + { > + //load the session to see if it is valid or not > + HttpSession s = getHttpSession(id); > + if (s != null && isValid(s)) > + { > + //associate it with the request so its reference count is decremented as the > + //request exits > + baseRequest.enterSession(s); > + if (LOG.isDebugEnabled()) > + LOG.debug("Multiple different valid session ids: {}, {}", requestedSessionId, id); > + throw new BadMessageException("Duplicate valid session cookies: " + requestedSessionId + " ," + id); > + } > + } > + else > + { > + if (LOG.isDebugEnabled()) > + LOG.debug("Duplicate valid session cookie id: {}", id); > + } > } > } > } > @@ -1718,24 +1745,22 @@ > > requestedSessionId = uri.substring(s, i); > requestedSessionIdFromCookie = false; > + > if (LOG.isDebugEnabled()) > LOG.debug("Got Session ID {} from URL", requestedSessionId); > + > session = getHttpSession(requestedSessionId); > + if (session != null && isValid(session)) > + { > + baseRequest.enterSession(session); //request enters this session for first time > + baseRequest.setSession(session); //associate the session with the request > + } > } > } > } > > baseRequest.setRequestedSessionId(requestedSessionId); > baseRequest.setRequestedSessionIdFromCookie(requestedSessionId != null && requestedSessionIdFromCookie); > - > - if (requestedSessionId != null) > - { > - if (session != null && isValid(session)) > - { > - baseRequest.enterSession(session); //request enters this session for first time > - baseRequest.setSession(session); //associate the session with the request > - } > - } > } > > /** > diff -Nru jetty9-9.4.38/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SniSslConnectionFactoryTest.java jetty9-9.4.39/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SniSslConnectionFactoryTest.java > --- jetty9-9.4.38/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SniSslConnectionFactoryTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SniSslConnectionFactoryTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -32,6 +32,7 @@ > import java.util.Queue; > import java.util.concurrent.LinkedBlockingQueue; > import java.util.function.Consumer; > +import java.util.stream.Collectors; > import javax.net.ssl.SNIHostName; > import javax.net.ssl.SNIServerName; > import javax.net.ssl.SSLEngine; > @@ -61,6 +62,7 @@ > import org.eclipse.jetty.util.IO; > import org.eclipse.jetty.util.ssl.SniX509ExtendedKeyManager; > import org.eclipse.jetty.util.ssl.SslContextFactory; > +import org.eclipse.jetty.util.ssl.X509; > import org.hamcrest.Matchers; > import org.junit.jupiter.api.AfterEach; > import org.junit.jupiter.api.BeforeEach; > @@ -189,7 +191,27 @@ > @Test > public void testSNIConnect() throws Exception > { > - start("src/test/resources/keystore_sni.p12"); > + start(ssl -> > + { > + ssl.setKeyStorePath("src/test/resources/keystore_sni.p12"); > + ssl.setSNISelector((keyType, issuers, session, sniHost, certificates) -> > + { > + // Make sure the *.domain.com comes before sub.domain.com > + // to test that we prefer more specific domains. > + List<X509> sortedCertificates = certificates.stream() > + // As sorted() sorts ascending, make *.domain.com the smallest. > + .sorted((x509a, x509b) -> > + { > + if (x509a.matches("domain.com")) > + return -1; > + if (x509b.matches("domain.com")) > + return 1; > + return 0; > + }) > + .collect(Collectors.toList()); > + return ssl.sniSelect(keyType, issuers, session, sniHost, sortedCertificates); > + }); > + }); > > String response = getResponse("jetty.eclipse.org", "jetty.eclipse.org"); > assertThat(response, Matchers.containsString("X-HOST: jetty.eclipse.org")); > @@ -200,6 +222,9 @@ > response = getResponse("foo.domain.com", "*.domain.com"); > assertThat(response, Matchers.containsString("X-HOST: foo.domain.com")); > > + response = getResponse("sub.domain.com", "sub.domain.com"); > + assertThat(response, Matchers.containsString("X-HOST: sub.domain.com")); > + > response = getResponse("m.san.com", "san example"); > assertThat(response, Matchers.containsString("X-HOST: m.san.com")); > > diff -Nru jetty9-9.4.38/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java jetty9-9.4.39/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java > --- jetty9-9.4.38/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -34,19 +34,31 @@ > import java.net.SocketException; > import java.net.SocketTimeoutException; > import java.net.URL; > +import java.nio.ByteBuffer; > +import java.util.Arrays; > +import java.util.concurrent.atomic.AtomicLong; > +import javax.net.SocketFactory; > import javax.net.ssl.HostnameVerifier; > import javax.net.ssl.HttpsURLConnection; > import javax.net.ssl.SSLContext; > +import javax.net.ssl.SSLEngine; > +import javax.net.ssl.SSLEngineResult; > +import javax.net.ssl.SSLException; > import javax.net.ssl.SSLSession; > import javax.servlet.ServletException; > import javax.servlet.ServletOutputStream; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > > +import org.eclipse.jetty.io.EndPoint; > +import org.eclipse.jetty.io.ssl.SslConnection; > +import org.eclipse.jetty.server.ConnectionFactory; > +import org.eclipse.jetty.server.Connector; > import org.eclipse.jetty.server.HttpConnectionFactory; > import org.eclipse.jetty.server.Request; > import org.eclipse.jetty.server.Server; > import org.eclipse.jetty.server.ServerConnector; > +import org.eclipse.jetty.server.SslConnectionFactory; > import org.eclipse.jetty.server.handler.AbstractHandler; > import org.eclipse.jetty.toolchain.test.MavenTestingUtils; > import org.eclipse.jetty.util.IO; > @@ -59,6 +71,7 @@ > import static org.hamcrest.MatcherAssert.assertThat; > import static org.hamcrest.Matchers.greaterThan; > import static org.hamcrest.Matchers.is; > +import static org.hamcrest.Matchers.lessThan; > import static org.junit.jupiter.api.Assertions.assertEquals; > import static org.junit.jupiter.api.Assertions.assertNotNull; > > @@ -106,12 +119,13 @@ > > private Server server; > private ServerConnector connector; > + private SslContextFactory.Server sslContextFactory; > > @BeforeEach > public void startServer() throws Exception > { > String keystore = MavenTestingUtils.getTestResourceFile("keystore").getAbsolutePath(); > - SslContextFactory sslContextFactory = new SslContextFactory.Server(); > + sslContextFactory = new SslContextFactory.Server(); > sslContextFactory.setKeyStorePath(keystore); > sslContextFactory.setKeyStorePassword("storepwd"); > sslContextFactory.setKeyManagerPassword("keypwd"); > @@ -192,6 +206,61 @@ > } > > @Test > + public void testInvalidLargeTLSFrame() throws Exception > + { > + AtomicLong unwraps = new AtomicLong(); > + ConnectionFactory http = connector.getConnectionFactory(HttpConnectionFactory.class); > + ConnectionFactory ssl = new SslConnectionFactory(sslContextFactory, http.getProtocol()) > + { > + @Override > + protected SslConnection newSslConnection(Connector connector, EndPoint endPoint, SSLEngine engine) > + { > + return new SslConnection(connector.getByteBufferPool(), connector.getExecutor(), endPoint, engine, isDirectBuffersForEncryption(), isDirectBuffersForDecryption()) > + { > + @Override > + protected SSLEngineResult unwrap(SSLEngine sslEngine, ByteBuffer input, ByteBuffer output) throws SSLException > + { > + unwraps.incrementAndGet(); > + return super.unwrap(sslEngine, input, output); > + } > + }; > + } > + }; > + ServerConnector tlsConnector = new ServerConnector(server, 1, 1, ssl, http); > + server.addConnector(tlsConnector); > + server.setHandler(new HelloWorldHandler()); > + server.start(); > + > + // Create raw TLS record. > + byte[] bytes = new byte[20005]; > + Arrays.fill(bytes, (byte)1); > + > + bytes[0] = 22; // record type > + bytes[1] = 3; // major version > + bytes[2] = 3; // minor version > + bytes[3] = 78; // record length 2 bytes / 0x4E20 / decimal 20,000 > + bytes[4] = 32; // record length > + bytes[5] = 1; // message type > + bytes[6] = 0; // message length 3 bytes / 0x004E17 / decimal 19,991 > + bytes[7] = 78; > + bytes[8] = 23; > + > + SocketFactory socketFactory = SocketFactory.getDefault(); > + try (Socket client = socketFactory.createSocket("localhost", tlsConnector.getLocalPort())) > + { > + client.getOutputStream().write(bytes); > + > + // Sleep to see if the server spins. > + Thread.sleep(1000); > + assertThat(unwraps.get(), lessThan(128L)); > + > + // Read until -1 or read timeout. > + client.setSoTimeout(1000); > + IO.readBytes(client.getInputStream()); > + } > + } > + > + @Test > public void testRequestJettyHttps() throws Exception > { > server.setHandler(new HelloWorldHandler()); > Binary files /tmp/xNV5seqXro/jetty9-9.4.38/jetty-server/src/test/resources/keystore_sni.p12 and /tmp/7J4C5W4awH/jetty9-9.4.39/jetty-server/src/test/resources/keystore_sni.p12 differ > diff -Nru jetty9-9.4.38/jetty-servlet/pom.xml jetty9-9.4.39/jetty-servlet/pom.xml > --- jetty9-9.4.38/jetty-servlet/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-servlet/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-servlet</artifactId> > diff -Nru jetty9-9.4.38/jetty-servlets/pom.xml jetty9-9.4.39/jetty-servlets/pom.xml > --- jetty9-9.4.38/jetty-servlets/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-servlets/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-servlets</artifactId> > diff -Nru jetty9-9.4.38/jetty-spring/pom.xml jetty9-9.4.39/jetty-spring/pom.xml > --- jetty9-9.4.38/jetty-spring/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-spring/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-spring</artifactId> > diff -Nru jetty9-9.4.38/jetty-start/pom.xml jetty9-9.4.39/jetty-start/pom.xml > --- jetty9-9.4.38/jetty-start/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-start/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-start</artifactId> > diff -Nru jetty9-9.4.38/jetty-unixsocket/pom.xml jetty9-9.4.39/jetty-unixsocket/pom.xml > --- jetty9-9.4.38/jetty-unixsocket/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-unixsocket/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-unixsocket</artifactId> > diff -Nru jetty9-9.4.38/jetty-util/pom.xml jetty9-9.4.39/jetty-util/pom.xml > --- jetty9-9.4.38/jetty-util/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-util</artifactId> > diff -Nru jetty9-9.4.38/jetty-util/src/main/config/modules/log4j2-api.mod jetty9-9.4.39/jetty-util/src/main/config/modules/log4j2-api.mod > --- jetty9-9.4.38/jetty-util/src/main/config/modules/log4j2-api.mod 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/main/config/modules/log4j2-api.mod 2021-03-25 15:36:22.000000000 +0100 > @@ -23,6 +23,6 @@ > http://www.apache.org/licenses/LICENSE-2.0.html > > [ini] > -log4j2.version?=2.11.2 > +log4j2.version?=2.14.0 > disruptor.version=3.4.2 > jetty.webapp.addServerClasses+=,${jetty.base.uri}/lib/log4j2/ > diff -Nru jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/ModuleLocation.java jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/ModuleLocation.java > --- jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/ModuleLocation.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/ModuleLocation.java 2021-03-25 15:36:22.000000000 +0100 > @@ -23,6 +23,7 @@ > import java.lang.reflect.Method; > import java.net.URI; > import java.util.Optional; > +import java.util.function.Function; > > import org.eclipse.jetty.util.log.Log; > import org.eclipse.jetty.util.log.Logger; > @@ -53,7 +54,7 @@ > * > * In Jetty 10, this entire class can be moved to direct calls to java.lang.Module in TypeUtil.getModuleLocation() > */ > -class ModuleLocation > +class ModuleLocation implements Function<Class<?>, URI> > { > private static final Logger LOG = Log.getLogger(ModuleLocation.class); > > @@ -100,7 +101,8 @@ > } > } > > - public URI getModuleLocation(Class<?> clazz) > + @Override > + public URI apply(Class<?> clazz) > { > try > { > diff -Nru jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/resource/FileResource.java jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/resource/FileResource.java > --- jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/resource/FileResource.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/resource/FileResource.java 2021-03-25 15:36:22.000000000 +0100 > @@ -29,7 +29,9 @@ > import java.net.URLConnection; > import java.nio.channels.FileChannel; > import java.nio.channels.ReadableByteChannel; > +import java.nio.file.Files; > import java.nio.file.InvalidPathException; > +import java.nio.file.Path; > import java.nio.file.StandardOpenOption; > import java.security.Permission; > > @@ -184,6 +186,30 @@ > _alias = checkFileAlias(_uri, _file); > } > > + @Override > + public boolean isSame(Resource resource) > + { > + try > + { > + if (resource instanceof PathResource) > + { > + Path path = ((PathResource)resource).getPath(); > + return Files.isSameFile(getFile().toPath(), path); > + } > + if (resource instanceof FileResource) > + { > + Path path = ((FileResource)resource).getFile().toPath(); > + return Files.isSameFile(getFile().toPath(), path); > + } > + } > + catch (IOException e) > + { > + if (LOG.isDebugEnabled()) > + LOG.debug("ignored", e); > + } > + return false; > + } > + > private static URI normalizeURI(File file, URI uri) throws URISyntaxException > { > String u = uri.toASCIIString(); > diff -Nru jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/resource/PathResource.java jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/resource/PathResource.java > --- jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/resource/PathResource.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/resource/PathResource.java 2021-03-25 15:36:22.000000000 +0100 > @@ -337,6 +337,30 @@ > } > > @Override > + public boolean isSame(Resource resource) > + { > + try > + { > + if (resource instanceof PathResource) > + { > + Path path = ((PathResource)resource).getPath(); > + return Files.isSameFile(getPath(), path); > + } > + if (resource instanceof FileResource) > + { > + Path path = ((FileResource)resource).getFile().toPath(); > + return Files.isSameFile(getPath(), path); > + } > + } > + catch (IOException e) > + { > + if (LOG.isDebugEnabled()) > + LOG.debug("ignored", e); > + } > + return false; > + } > + > + @Override > public Resource addPath(final String subpath) throws IOException > { > String cpath = URIUtil.canonicalPath(subpath); > diff -Nru jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java > --- jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java 2021-03-25 15:36:22.000000000 +0100 > @@ -312,6 +312,18 @@ > public abstract boolean isContainedIn(Resource r) throws MalformedURLException; > > /** > + * Return true if the passed Resource represents the same resource as the Resource. > + * For many resource types, this is equivalent to {@link #equals(Object)}, however > + * for resources types that support aliasing, this maybe some other check (e.g. {@link java.nio.file.Files#isSameFile(Path, Path)}). > + * @param resource The resource to check > + * @return true if the passed resource represents the same resource. > + */ > + public boolean isSame(Resource resource) > + { > + return equals(resource); > + } > + > + /** > * Release any temporary resources held by the resource. > * > * @deprecated use {@link #close()} > diff -Nru jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/ssl/SslContextFactory.java jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/ssl/SslContextFactory.java > --- jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/ssl/SslContextFactory.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/ssl/SslContextFactory.java 2021-03-25 15:36:22.000000000 +0100 > @@ -54,6 +54,7 @@ > import java.util.Set; > import java.util.function.Consumer; > import java.util.regex.Pattern; > +import java.util.stream.Collectors; > import javax.net.ssl.CertPathTrustManagerParameters; > import javax.net.ssl.HostnameVerifier; > import javax.net.ssl.KeyManager; > @@ -63,7 +64,6 @@ > import javax.net.ssl.SNIServerName; > import javax.net.ssl.SSLContext; > import javax.net.ssl.SSLEngine; > -import javax.net.ssl.SSLHandshakeException; > import javax.net.ssl.SSLParameters; > import javax.net.ssl.SSLPeerUnverifiedException; > import javax.net.ssl.SSLServerSocket; > @@ -2292,7 +2292,7 @@ > } > > @Override > - public String sniSelect(String keyType, Principal[] issuers, SSLSession session, String sniHost, Collection<X509> certificates) throws SSLHandshakeException > + public String sniSelect(String keyType, Principal[] issuers, SSLSession session, String sniHost, Collection<X509> certificates) > { > if (sniHost == null) > { > @@ -2301,12 +2301,24 @@ > } > else > { > - // Match the SNI host, or let the JDK decide unless unmatched SNIs are rejected. > - return certificates.stream() > + // Match the SNI host. > + List<X509> matching = certificates.stream() > .filter(x509 -> x509.matches(sniHost)) > - .findFirst() > + .collect(Collectors.toList()); > + > + // No match, let the JDK decide unless unmatched SNIs are rejected. > + if (matching.isEmpty()) > + return isSniRequired() ? null : SniX509ExtendedKeyManager.SniSelector.DELEGATE; > + > + String alias = matching.get(0).getAlias(); > + if (matching.size() == 1) > + return alias; > + > + // Prefer strict matches over wildcard matches. > + return matching.stream() > + .min(Comparator.comparingInt(cert -> cert.getWilds().size())) > .map(X509::getAlias) > - .orElse(_sniRequired ? null : SniX509ExtendedKeyManager.SniSelector.DELEGATE); > + .orElse(alias); > } > } > > diff -Nru jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/TypeUtil.java jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/TypeUtil.java > --- jetty9-9.4.38/jetty-util/src/main/java/org/eclipse/jetty/util/TypeUtil.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/main/java/org/eclipse/jetty/util/TypeUtil.java 2021-03-25 15:36:22.000000000 +0100 > @@ -19,9 +19,6 @@ > package org.eclipse.jetty.util; > > import java.io.IOException; > -import java.lang.invoke.MethodHandle; > -import java.lang.invoke.MethodHandles; > -import java.lang.invoke.MethodType; > import java.lang.reflect.Constructor; > import java.lang.reflect.InvocationTargetException; > import java.lang.reflect.Method; > @@ -38,12 +35,11 @@ > import java.util.HashMap; > import java.util.List; > import java.util.Map; > +import java.util.function.Function; > > import org.eclipse.jetty.util.log.Log; > import org.eclipse.jetty.util.log.Logger; > > -import static java.lang.invoke.MethodType.methodType; > - > /** > * TYPE Utilities. > * Provides various static utility methods for manipulating types and their > @@ -177,38 +173,32 @@ > } > } > > - private static final MethodHandle[] LOCATION_METHODS; > - private static final ModuleLocation MODULE_LOCATION; > + private static final List<Function<Class<?>, URI>> LOCATION_METHODS = new ArrayList<>(); > + private static final Function<Class<?>, URI> MODULE_LOCATION; > > static > { > - List<MethodHandle> locationMethods = new ArrayList<>(); > - > - MethodHandles.Lookup lookup = MethodHandles.lookup(); > - MethodType type = methodType(URI.class, Class.class); > - > + // Lookup order in LOCATION_METHODS is important. > + LOCATION_METHODS.add(TypeUtil::getCodeSourceLocation); > + Function<Class<?>, URI> moduleFunc = null; > try > { > - locationMethods.add(lookup.findStatic(TypeUtil.class, "getCodeSourceLocation", type)); > - ModuleLocation moduleLocation = null; > - try > + Class<?> clazzModuleLocation = TypeUtil.class.getClassLoader().loadClass(TypeUtil.class.getPackage().getName() + ".ModuleLocation"); > + Object obj = clazzModuleLocation.getConstructor().newInstance(); > + if (obj instanceof Function) > { > - moduleLocation = new ModuleLocation(); > - locationMethods.add(lookup.findStatic(TypeUtil.class, "getModuleLocation", type)); > + //noinspection unchecked > + moduleFunc = (Function<Class<?>, URI>)obj; > + LOCATION_METHODS.add(moduleFunc); > } > - catch (UnsupportedOperationException e) > - { > - LOG.debug("JVM Runtime does not support Modules"); > - } > - MODULE_LOCATION = moduleLocation; > - locationMethods.add(lookup.findStatic(TypeUtil.class, "getClassLoaderLocation", type)); > - locationMethods.add(lookup.findStatic(TypeUtil.class, "getSystemClassLoaderLocation", type)); > - LOCATION_METHODS = locationMethods.toArray(new MethodHandle[0]); > } > - catch (Exception e) > + catch (Throwable t) > { > - throw new RuntimeException("Unable to establish Location Lookup Handles", e); > + LOG.debug("This JVM Runtime does not support Modules, disabling Jetty internal support"); > } > + MODULE_LOCATION = moduleFunc; > + LOCATION_METHODS.add(TypeUtil::getClassLoaderLocation); > + LOCATION_METHODS.add(TypeUtil::getSystemClassLoaderLocation); > } > > /** > @@ -627,13 +617,11 @@ > */ > public static URI getLocationOfClass(Class<?> clazz) > { > - URI location; > - > - for (MethodHandle locationMethod : LOCATION_METHODS) > + for (Function<Class<?>, URI> locationFunction : LOCATION_METHODS) > { > try > { > - location = (URI)locationMethod.invoke(clazz); > + URI location = locationFunction.apply(clazz); > if (location != null) > { > return location; > @@ -723,7 +711,7 @@ > // In Jetty 10, this method can be implemented directly, without reflection > if (MODULE_LOCATION != null) > { > - return MODULE_LOCATION.getModuleLocation(clazz); > + return MODULE_LOCATION.apply(clazz); > } > return null; > } > diff -Nru jetty9-9.4.38/jetty-util/src/test/java/org/eclipse/jetty/util/resource/PathResourceTest.java jetty9-9.4.39/jetty-util/src/test/java/org/eclipse/jetty/util/resource/PathResourceTest.java > --- jetty9-9.4.38/jetty-util/src/test/java/org/eclipse/jetty/util/resource/PathResourceTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util/src/test/java/org/eclipse/jetty/util/resource/PathResourceTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -32,6 +32,7 @@ > import java.util.Map; > > import org.eclipse.jetty.toolchain.test.MavenTestingUtils; > +import org.hamcrest.Matchers; > import org.junit.jupiter.api.Test; > > import static java.nio.charset.StandardCharsets.UTF_8; > @@ -146,4 +147,20 @@ > File file = resource.getFile(); > assertThat("File for default FileSystem", file, is(exampleJar.toFile())); > } > + > + @Test > + public void testSame() throws Exception > + { > + Path rpath = MavenTestingUtils.getTestResourcePathFile("resource.txt"); > + Path epath = MavenTestingUtils.getTestResourcePathFile("example.jar"); > + PathResource rPathResource = new PathResource(rpath); > + FileResource rFileResource = new FileResource(rpath.toFile()); > + PathResource ePathResource = new PathResource(epath); > + FileResource eFileResource = new FileResource(epath.toFile()); > + > + assertThat(rPathResource.isSame(rPathResource), Matchers.is(true)); > + assertThat(rPathResource.isSame(rFileResource), Matchers.is(true)); > + assertThat(rPathResource.isSame(ePathResource), Matchers.is(false)); > + assertThat(rPathResource.isSame(eFileResource), Matchers.is(false)); > + } > } > diff -Nru jetty9-9.4.38/jetty-util-ajax/pom.xml jetty9-9.4.39/jetty-util-ajax/pom.xml > --- jetty9-9.4.38/jetty-util-ajax/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-util-ajax/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-util-ajax</artifactId> > diff -Nru jetty9-9.4.38/jetty-webapp/pom.xml jetty9-9.4.39/jetty-webapp/pom.xml > --- jetty9-9.4.38/jetty-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-webapp</artifactId> > diff -Nru jetty9-9.4.38/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebAppContextTest.java jetty9-9.4.39/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebAppContextTest.java > --- jetty9-9.4.38/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebAppContextTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-webapp/src/test/java/org/eclipse/jetty/webapp/WebAppContextTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -33,8 +33,10 @@ > import javax.servlet.ServletRequest; > import javax.servlet.ServletResponse; > > +import org.eclipse.jetty.http.HttpCompliance; > import org.eclipse.jetty.http.HttpStatus; > import org.eclipse.jetty.http.HttpTester; > +import org.eclipse.jetty.server.HttpConnectionFactory; > import org.eclipse.jetty.server.LocalConnector; > import org.eclipse.jetty.server.Server; > import org.eclipse.jetty.server.ServerConnector; > @@ -248,6 +250,42 @@ > } > > @Test > + public void testProtectedTarget() throws Exception > + { > + Server server = newServer(); > + server.getConnectors()[0].getConnectionFactory(HttpConnectionFactory.class).setHttpCompliance(HttpCompliance.LEGACY); > + > + HandlerList handlers = new HandlerList(); > + ContextHandlerCollection contexts = new ContextHandlerCollection(); > + WebAppContext context = new WebAppContext(); > + Path testWebapp = MavenTestingUtils.getProjectDirPath("src/test/webapp"); > + context.setBaseResource(new PathResource(testWebapp)); > + context.setContextPath("/"); > + server.setHandler(handlers); > + handlers.addHandler(contexts); > + contexts.addHandler(context); > + > + LocalConnector connector = new LocalConnector(server); > + server.addConnector(connector); > + > + server.start(); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.OK_200)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /%2e/%2e/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.OK_200)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /foo/%2e%2e/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.OK_200)); > + > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /WEB-INF HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /WEB-INF/ HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /WEB-INF/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /web-inf/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /%2e/WEB-INF/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /%2e/%2e/WEB-INF/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /foo/%2e%2e/WEB-INF/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /%2E/WEB-INF/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET //WEB-INF/test.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + assertThat(HttpTester.parseResponse(connector.getResponse("GET /WEB-INF%2ftest.xml HTTP/1.1\r\nHost: localhost:8080\r\nConnection: close\r\n\r\n")).getStatus(), is(HttpStatus.NOT_FOUND_404)); > + } > + > + @Test > public void testNullPath() throws Exception > { > Server server = newServer(); > diff -Nru jetty9-9.4.38/jetty-webapp/src/test/webapp/test.xml jetty9-9.4.39/jetty-webapp/src/test/webapp/test.xml > --- jetty9-9.4.38/jetty-webapp/src/test/webapp/test.xml 1970-01-01 01:00:00.000000000 +0100 > +++ jetty9-9.4.39/jetty-webapp/src/test/webapp/test.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -0,0 +1 @@ > +test > diff -Nru jetty9-9.4.38/jetty-webapp/src/test/webapp/WEB-INF/test.xml jetty9-9.4.39/jetty-webapp/src/test/webapp/WEB-INF/test.xml > --- jetty9-9.4.38/jetty-webapp/src/test/webapp/WEB-INF/test.xml 1970-01-01 01:00:00.000000000 +0100 > +++ jetty9-9.4.39/jetty-webapp/src/test/webapp/WEB-INF/test.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -0,0 +1 @@ > +test > diff -Nru jetty9-9.4.38/jetty-websocket/javax-websocket-client-impl/pom.xml jetty9-9.4.39/jetty-websocket/javax-websocket-client-impl/pom.xml > --- jetty9-9.4.38/jetty-websocket/javax-websocket-client-impl/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/javax-websocket-client-impl/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/javax-websocket-server-impl/pom.xml jetty9-9.4.39/jetty-websocket/javax-websocket-server-impl/pom.xml > --- jetty9-9.4.38/jetty-websocket/javax-websocket-server-impl/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/javax-websocket-server-impl/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/jetty-websocket-tests/pom.xml jetty9-9.4.39/jetty-websocket/jetty-websocket-tests/pom.xml > --- jetty9-9.4.38/jetty-websocket/jetty-websocket-tests/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/jetty-websocket-tests/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/PermessageDeflateBufferTest.java jetty9-9.4.39/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/PermessageDeflateBufferTest.java > --- jetty9-9.4.38/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/PermessageDeflateBufferTest.java 1970-01-01 01:00:00.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/jetty-websocket-tests/src/test/java/org/eclipse/jetty/websocket/tests/PermessageDeflateBufferTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -0,0 +1,135 @@ > +// > +// ======================================================================== > +// Copyright (c) 1995-2021 Mort Bay Consulting Pty Ltd and others. > +// ------------------------------------------------------------------------ > +// All rights reserved. This program and the accompanying materials > +// are made available under the terms of the Eclipse Public License v1.0 > +// and Apache License v2.0 which accompanies this distribution. > +// > +// The Eclipse Public License is available at > +// http://www.eclipse.org/legal/epl-v10.html > +// > +// The Apache License v2.0 is available at > +// http://www.opensource.org/licenses/apache2.0.php > +// > +// You may elect to redistribute this code under either of these licenses. > +// ======================================================================== > +// > + > +package org.eclipse.jetty.websocket.tests; > + > +import java.net.URI; > +import java.util.Arrays; > +import java.util.List; > +import java.util.Random; > +import java.util.concurrent.TimeUnit; > + > +import org.eclipse.jetty.server.Server; > +import org.eclipse.jetty.server.ServerConnector; > +import org.eclipse.jetty.servlet.ServletContextHandler; > +import org.eclipse.jetty.websocket.api.Session; > +import org.eclipse.jetty.websocket.api.annotations.WebSocket; > +import org.eclipse.jetty.websocket.client.ClientUpgradeRequest; > +import org.eclipse.jetty.websocket.client.WebSocketClient; > +import org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer; > +import org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter; > +import org.junit.jupiter.api.AfterEach; > +import org.junit.jupiter.api.BeforeEach; > +import org.junit.jupiter.api.Test; > + > +import static org.hamcrest.MatcherAssert.assertThat; > +import static org.hamcrest.Matchers.is; > +import static org.junit.jupiter.api.Assertions.assertTrue; > + > +public class PermessageDeflateBufferTest > +{ > + private Server server; > + private ServerConnector connector; > + private WebSocketClient client; > + > + // @checkstyle-disable-check : AvoidEscapedUnicodeCharactersCheck > + private static final List<String> DICT = Arrays.asList( > + "\uD83C\uDF09", > + "\uD83C\uDF0A", > + "\uD83C\uDF0B", > + "\uD83C\uDF0C", > + "\uD83C\uDF0D", > + "\uD83C\uDF0F", > + "\uD83C\uDFC0", > + "\uD83C\uDFC1", > + "\uD83C\uDFC2", > + "\uD83C\uDFC3", > + "\uD83C\uDFC4", > + "\uD83C\uDFC5" > + ); > + > + private static String randomText() > + { > + Random rnd = new Random(); > + StringBuilder sb = new StringBuilder(); > + for (int i = 0; i < 15000; i++) > + { > + sb.append(DICT.get(rnd.nextInt(DICT.size()))); > + } > + return sb.toString(); > + } > + > + @BeforeEach > + public void before() throws Exception > + { > + server = new Server(); > + connector = new ServerConnector(server); > + server.addConnector(connector); > + > + ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS); > + contextHandler.setContextPath("/"); > + server.setHandler(contextHandler); > + WebSocketUpgradeFilter.configure(contextHandler); > + NativeWebSocketServletContainerInitializer.configure(contextHandler, (context, container) -> > + { > + container.getPolicy().setMaxTextMessageBufferSize(65535); > + container.getPolicy().setInputBufferSize(16384); > + container.addMapping("/", ServerSocket.class); > + }); > + > + server.start(); > + client = new WebSocketClient(); > + client.start(); > + } > + > + @AfterEach > + public void after() throws Exception > + { > + client.stop(); > + server.stop(); > + } > + > + @WebSocket > + public static class ServerSocket extends EchoSocket > + { > + @Override > + public void onError(Throwable cause) > + { > + cause.printStackTrace(); > + super.onError(cause); > + } > + } > + > + @Test > + public void testPermessageDeflateAggregation() throws Exception > + { > + EventSocket socket = new EventSocket(); > + ClientUpgradeRequest clientUpgradeRequest = new ClientUpgradeRequest(); > + clientUpgradeRequest.addExtensions("permessage-deflate"); > + > + URI uri = URI.create("ws://localhost:" + connector.getLocalPort()); > + Session session = client.connect(socket, uri, clientUpgradeRequest).get(5, TimeUnit.SECONDS); > + > + String s = randomText(); > + session.getRemote().sendString(s); > + assertThat(socket.textMessages.poll(5, TimeUnit.SECONDS), is(s)); > + > + session.close(); > + assertTrue(socket.closeLatch.await(5, TimeUnit.SECONDS)); > + } > +} > diff -Nru jetty9-9.4.38/jetty-websocket/pom.xml jetty9-9.4.39/jetty-websocket/pom.xml > --- jetty9-9.4.38/jetty-websocket/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <artifactId>jetty-project</artifactId> > <groupId>org.eclipse.jetty</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/websocket-api/pom.xml jetty9-9.4.39/jetty-websocket/websocket-api/pom.xml > --- jetty9-9.4.38/jetty-websocket/websocket-api/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/websocket-api/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/websocket-client/pom.xml jetty9-9.4.39/jetty-websocket/websocket-client/pom.xml > --- jetty9-9.4.38/jetty-websocket/websocket-client/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/websocket-client/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/websocket-common/pom.xml jetty9-9.4.39/jetty-websocket/websocket-common/pom.xml > --- jetty9-9.4.38/jetty-websocket/websocket-common/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/websocket-common/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/compress/CompressExtension.java jetty9-9.4.39/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/compress/CompressExtension.java > --- jetty9-9.4.38/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/compress/CompressExtension.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/compress/CompressExtension.java 2021-03-25 15:36:22.000000000 +0100 > @@ -197,14 +197,15 @@ > > while (true) > { > + // The buffer returned by the accumulator might not be empty, so we must append starting from the limit. > ByteBuffer buffer = accumulator.ensureBuffer(DECOMPRESS_BUF_SIZE); > - int read = inflater.inflate(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.capacity() - buffer.limit()); > - buffer.limit(buffer.limit() + read); > - accumulator.addLength(read); > + int decompressed = inflater.inflate(buffer.array(), buffer.arrayOffset() + buffer.limit(), buffer.capacity() - buffer.limit()); > + buffer.limit(buffer.limit() + decompressed); > + accumulator.addLength(decompressed); > if (LOG.isDebugEnabled()) > - LOG.debug("Decompressed {} bytes into buffer {} from {}", read, BufferUtil.toDetailString(buffer), toDetail(inflater)); > + LOG.debug("Decompressed {} bytes into buffer {} from {}", decompressed, BufferUtil.toDetailString(buffer), toDetail(inflater)); > > - if (read <= 0) > + if (decompressed <= 0) > break; > } > } > @@ -495,8 +496,9 @@ > { > while (true) > { > + // The buffer returned by the accumulator might not be empty, so we must append starting from the limit. > ByteBuffer buffer = accumulator.ensureBuffer(8, outputLength); > - int compressed = deflater.deflate(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.capacity() - buffer.limit(), Deflater.SYNC_FLUSH); > + int compressed = deflater.deflate(buffer.array(), buffer.arrayOffset() + buffer.limit(), buffer.capacity() - buffer.limit(), Deflater.SYNC_FLUSH); > buffer.limit(buffer.limit() + compressed); > > if (LOG.isDebugEnabled()) > diff -Nru jetty9-9.4.38/jetty-websocket/websocket-server/pom.xml jetty9-9.4.39/jetty-websocket/websocket-server/pom.xml > --- jetty9-9.4.38/jetty-websocket/websocket-server/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/websocket-server/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-websocket/websocket-servlet/pom.xml jetty9-9.4.39/jetty-websocket/websocket-servlet/pom.xml > --- jetty9-9.4.38/jetty-websocket/websocket-servlet/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-websocket/websocket-servlet/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.websocket</groupId> > <artifactId>websocket-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/jetty-xml/pom.xml jetty9-9.4.39/jetty-xml/pom.xml > --- jetty9-9.4.38/jetty-xml/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-xml/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jetty-xml</artifactId> > diff -Nru jetty9-9.4.38/jetty-xml/src/test/java/org/eclipse/jetty/xml/XmlParserTest.java jetty9-9.4.39/jetty-xml/src/test/java/org/eclipse/jetty/xml/XmlParserTest.java > --- jetty9-9.4.38/jetty-xml/src/test/java/org/eclipse/jetty/xml/XmlParserTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/jetty-xml/src/test/java/org/eclipse/jetty/xml/XmlParserTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -33,6 +33,8 @@ > > URL configURL = XmlConfiguration.class.getClassLoader().getResource("org/eclipse/jetty/xml/configure_9_3.dtd"); > parser.redirectEntity("configure.dtd", configURL); > + parser.redirectEntity("configure_9_3.dtd", configURL); > + //parser.redirectEntity("http://www.eclipse.org/jetty/configure_9_3.dtd", configURL); > parser.redirectEntity("http://jetty.eclipse.org/configure.dtd", configURL); > parser.redirectEntity("-//Mort Bay Consulting//DTD Configure//EN", configURL); > > diff -Nru jetty9-9.4.38/pom.xml jetty9-9.4.39/pom.xml > --- jetty9-9.4.38/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <modelVersion>4.0.0</modelVersion> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <name>Jetty :: Project</name> > <description>The Eclipse Jetty Project</description> > <packaging>pom</packaging> > @@ -19,7 +19,7 @@ > <build-support.version>1.5</build-support.version> > <checkstyle.version>8.37</checkstyle.version> > <slf4j.version>1.7.30</slf4j.version> > - <log4j2.version>2.11.2</log4j2.version> > + <log4j2.version>2.14.0</log4j2.version> > <disruptor.version>3.4.2</disruptor.version> > <logback.version>1.2.3</logback.version> > <jetty-test-policy.version>1.2</jetty-test-policy.version> > diff -Nru jetty9-9.4.38/tests/pom.xml jetty9-9.4.39/tests/pom.xml > --- jetty9-9.4.38/tests/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty</groupId> > <artifactId>jetty-project</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <groupId>org.eclipse.jetty.tests</groupId> > diff -Nru jetty9-9.4.38/tests/test-continuation/pom.xml jetty9-9.4.39/tests/test-continuation/pom.xml > --- jetty9-9.4.38/tests/test-continuation/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-continuation/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-distribution/pom.xml jetty9-9.4.39/tests/test-distribution/pom.xml > --- jetty9-9.4.38/tests/test-distribution/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-distribution/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -2,7 +2,7 @@ > <parent> > <artifactId>tests-parent</artifactId> > <groupId>org.eclipse.jetty.tests</groupId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > > diff -Nru jetty9-9.4.38/tests/test-http-client-transport/pom.xml jetty9-9.4.39/tests/test-http-client-transport/pom.xml > --- jetty9-9.4.38/tests/test-http-client-transport/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-http-client-transport/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-integration/pom.xml jetty9-9.4.39/tests/test-integration/pom.xml > --- jetty9-9.4.38/tests/test-integration/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-integration/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>test-integration</artifactId> > diff -Nru jetty9-9.4.38/tests/test-jmx/jmx-webapp/pom.xml jetty9-9.4.39/tests/test-jmx/jmx-webapp/pom.xml > --- jetty9-9.4.38/tests/test-jmx/jmx-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-jmx/jmx-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-jmx-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>jmx-webapp</artifactId> > <packaging>war</packaging> > diff -Nru jetty9-9.4.38/tests/test-jmx/jmx-webapp-it/pom.xml jetty9-9.4.39/tests/test-jmx/jmx-webapp-it/pom.xml > --- jetty9-9.4.38/tests/test-jmx/jmx-webapp-it/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-jmx/jmx-webapp-it/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-jmx-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>jmx-webapp-it</artifactId> > diff -Nru jetty9-9.4.38/tests/test-jmx/pom.xml jetty9-9.4.39/tests/test-jmx/pom.xml > --- jetty9-9.4.38/tests/test-jmx/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-jmx/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <modelVersion>4.0.0</modelVersion> > <artifactId>test-jmx-parent</artifactId> > diff -Nru jetty9-9.4.38/tests/test-loginservice/pom.xml jetty9-9.4.39/tests/test-loginservice/pom.xml > --- jetty9-9.4.38/tests/test-loginservice/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-loginservice/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-loginservice</artifactId> > <name>Jetty Tests :: Login Service</name> > diff -Nru jetty9-9.4.38/tests/test-quickstart/pom.xml jetty9-9.4.39/tests/test-quickstart/pom.xml > --- jetty9-9.4.38/tests/test-quickstart/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-quickstart/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-sessions-parent</artifactId> > <name>Jetty Tests :: Sessions :: Parent</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-file-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/test-file-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-file-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-file-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-file-sessions</artifactId> > <name>Jetty Tests :: Sessions :: File</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-gcloud-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/test-gcloud-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-gcloud-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-gcloud-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-gcloud-sessions</artifactId> > <name>Jetty Tests :: Sessions :: GCloud</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-hazelcast-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/test-hazelcast-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-hazelcast-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-hazelcast-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-hazelcast-sessions</artifactId> > <name>Jetty Tests :: Sessions :: Hazelcast</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-infinispan-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/test-infinispan-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-infinispan-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-infinispan-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-infinispan-sessions</artifactId> > <name>Jetty Tests :: Sessions :: Infinispan</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-jdbc-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/test-jdbc-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-jdbc-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-jdbc-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-jdbc-sessions</artifactId> > <name>Jetty Tests :: Sessions :: JDBC</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-memcached-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/test-memcached-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-memcached-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-memcached-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-memcached-sessions</artifactId> > <name>Jetty Tests :: Sessions :: Memcached</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-mongodb-sessions/pom.xml jetty9-9.4.39/tests/test-sessions/test-mongodb-sessions/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-mongodb-sessions/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-mongodb-sessions/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-mongodb-sessions</artifactId> > <name>Jetty Tests :: Sessions :: Mongo</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-sessions-common/pom.xml jetty9-9.4.39/tests/test-sessions/test-sessions-common/pom.xml > --- jetty9-9.4.38/tests/test-sessions/test-sessions-common/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-sessions-common/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-sessions-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-sessions-common</artifactId> > <name>Jetty Tests :: Sessions :: Common</name> > diff -Nru jetty9-9.4.38/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/DuplicateCookieTest.java jetty9-9.4.39/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/DuplicateCookieTest.java > --- jetty9-9.4.38/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/DuplicateCookieTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/DuplicateCookieTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -65,13 +65,15 @@ > try (StacklessLogging stackless = new StacklessLogging(Log.getLogger("org.eclipse.jetty.server.session"))) > { > //create a valid session > - createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + Session s4422 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > "4422"); > > client = new HttpClient(); > client.start(); > > + assertEquals(0, s4422.getRequests()); > + > //make a request with another session cookie in there that does not exist > Request request = client.newRequest("http://localhost:" + port1 + contextPath + servletMapping + "?action=check"); > request.header("Cookie", "JSESSIONID=123"); //doesn't exist > @@ -79,6 +81,66 @@ > ContentResponse response = request.send(); > assertEquals(HttpServletResponse.SC_OK, response.getStatus()); > assertEquals("4422", response.getContentAsString()); > + > + assertEquals(0, s4422.getRequests()); > + } > + finally > + { > + server1.stop(); > + client.stop(); > + } > + } > + > + @Test > + public void testMultipleSessionCookiesValidFirst() throws Exception > + { > + String contextPath = ""; > + String servletMapping = "/server"; > + HttpClient client = null; > + > + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); > + SessionDataStoreFactory storeFactory = new TestSessionDataStoreFactory(); > + > + TestServer server1 = new TestServer(0, -1, -1, cacheFactory, storeFactory); > + TestServlet servlet = new TestServlet(); > + ServletHolder holder = new ServletHolder(servlet); > + ServletContextHandler contextHandler = server1.addContext(contextPath); > + contextHandler.addServlet(holder, servletMapping); > + server1.start(); > + int port1 = server1.getPort(); > + > + try (StacklessLogging stackless = new StacklessLogging(Log.getLogger("org.eclipse.jetty.server.session"))) > + { > + //create a valid session > + Session s1122 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "1122"); > + //create an invalid session > + Session s2233 = createInvalidSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "2233"); > + //create another invalid session > + Session s2255 = createInvalidSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "2255"); > + > + client = new HttpClient(); > + client.start(); > + > + assertEquals(0, s1122.getRequests()); > + assertEquals(0, s2233.getRequests()); > + assertEquals(0, s2255.getRequests()); > + > + //make a request where the valid session cookie is first > + Request request = client.newRequest("http://localhost:" + port1 + contextPath + servletMapping + "?action=check"); > + request.header("Cookie", "JSESSIONID=1122"); //is valid > + request.header("Cookie", "JSESSIONID=2233"); //is invalid > + request.header("Cookie", "JSESSIONID=2255"); //is invalid > + ContentResponse response = request.send(); > + assertEquals(HttpServletResponse.SC_OK, response.getStatus()); > + assertEquals("1122", response.getContentAsString()); > + > + assertEquals(0, s1122.getRequests()); > } > finally > { > @@ -88,7 +150,7 @@ > } > > @Test > - public void testMultipleSessionCookiesOnlyOneValid() throws Exception > + public void testMultipleSessionCookiesInvalidFirst() throws Exception > { > String contextPath = ""; > String servletMapping = "/server"; > @@ -108,24 +170,93 @@ > try (StacklessLogging stackless = new StacklessLogging(Log.getLogger("org.eclipse.jetty.server.session"))) > { > //create a valid session > - createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + Session s1122 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > "1122"); > //create an invalid session > - createInvalidSession(contextHandler.getSessionHandler().getSessionCache(), > + Session s2233 = createInvalidSession(contextHandler.getSessionHandler().getSessionCache(), > contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > "2233"); > + //create another invalid session > + Session s2255 = createInvalidSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "2255"); > > client = new HttpClient(); > client.start(); > > - //make a request with another session cookie in there that is not valid > + assertEquals(0, s1122.getRequests()); > + assertEquals(0, s2233.getRequests()); > + assertEquals(0, s2255.getRequests()); > + > + //make a request with the valid session cookie last > Request request = client.newRequest("http://localhost:" + port1 + contextPath + servletMapping + "?action=check"); > + request.header("Cookie", "JSESSIONID=2233"); //is invalid > + request.header("Cookie", "JSESSIONID=2255"); //is invalid > request.header("Cookie", "JSESSIONID=1122"); //is valid > + ContentResponse response = request.send(); > + assertEquals(HttpServletResponse.SC_OK, response.getStatus()); > + assertEquals("1122", response.getContentAsString()); > + > + assertEquals(0, s1122.getRequests()); > + } > + finally > + { > + server1.stop(); > + client.stop(); > + } > + } > + > + @Test > + public void testMultipleSessionCookiesInvalidValidInvalid() throws Exception > + { > + String contextPath = ""; > + String servletMapping = "/server"; > + HttpClient client = null; > + > + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); > + SessionDataStoreFactory storeFactory = new TestSessionDataStoreFactory(); > + > + TestServer server1 = new TestServer(0, -1, -1, cacheFactory, storeFactory); > + TestServlet servlet = new TestServlet(); > + ServletHolder holder = new ServletHolder(servlet); > + ServletContextHandler contextHandler = server1.addContext(contextPath); > + contextHandler.addServlet(holder, servletMapping); > + server1.start(); > + int port1 = server1.getPort(); > + > + try (StacklessLogging stackless = new StacklessLogging(Log.getLogger("org.eclipse.jetty.server.session"))) > + { > + //create a valid session > + Session s1122 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "1122"); > + //create an invalid session > + Session s2233 = createInvalidSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "2233"); > + //create another invalid session > + Session s2255 = createInvalidSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "2255"); > + > + client = new HttpClient(); > + client.start(); > + > + assertEquals(0, s1122.getRequests()); > + assertEquals(0, s2233.getRequests()); > + assertEquals(0, s2255.getRequests()); > + > + //make a request with another session cookie with the valid session surrounded by invalids > + Request request = client.newRequest("http://localhost:" + port1 + contextPath + servletMapping + "?action=check"); > request.header("Cookie", "JSESSIONID=2233"); //is invalid > + request.header("Cookie", "JSESSIONID=1122"); //is valid > + request.header("Cookie", "JSESSIONID=2255"); //is invalid > ContentResponse response = request.send(); > assertEquals(HttpServletResponse.SC_OK, response.getStatus()); > assertEquals("1122", response.getContentAsString()); > + > + assertEquals(0, s1122.getRequests()); > } > finally > { > @@ -155,25 +286,83 @@ > try (StacklessLogging stackless = new StacklessLogging(Log.getLogger("org.eclipse.jetty.server.session"))) > { > //create some of unexpired sessions > - createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + Session s1234 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > "1234"); > - createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + Session s5678 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > "5678"); > - createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + Session s9111 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > "9111"); > > client = new HttpClient(); > client.start(); > > + //check that the request count is 0 > + assertEquals(0, s1234.getRequests()); > + assertEquals(0, s5678.getRequests()); > + assertEquals(0, s9111.getRequests()); > + > //make a request with multiple valid session ids > Request request = client.newRequest("http://localhost:" + port1 + contextPath + servletMapping + "?action=check"); > request.header("Cookie", "JSESSIONID=1234"); > request.header("Cookie", "JSESSIONID=5678"); > ContentResponse response = request.send(); > assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatus()); > + > + //check that all valid sessions have their request counts decremented correctly after the request, back to 0 > + assertEquals(0, s1234.getRequests()); > + assertEquals(0, s5678.getRequests()); > + assertEquals(0, s9111.getRequests()); > + } > + finally > + { > + server1.stop(); > + client.stop(); > + } > + } > + > + @Test > + public void testMultipleIdenticalSessionCookies() throws Exception > + { > + String contextPath = ""; > + String servletMapping = "/server"; > + HttpClient client = null; > + > + DefaultSessionCacheFactory cacheFactory = new DefaultSessionCacheFactory(); > + SessionDataStoreFactory storeFactory = new TestSessionDataStoreFactory(); > + > + TestServer server1 = new TestServer(0, -1, -1, cacheFactory, storeFactory); > + TestServlet servlet = new TestServlet(); > + ServletHolder holder = new ServletHolder(servlet); > + ServletContextHandler contextHandler = server1.addContext(contextPath); > + contextHandler.addServlet(holder, servletMapping); > + server1.start(); > + int port1 = server1.getPort(); > + > + try (StacklessLogging stackless = new StacklessLogging(Log.getLogger("org.eclipse.jetty.server.session"))) > + { > + //create a valid unexpired session > + Session s1234 = createUnExpiredSession(contextHandler.getSessionHandler().getSessionCache(), > + contextHandler.getSessionHandler().getSessionCache().getSessionDataStore(), > + "1234"); > + > + client = new HttpClient(); > + client.start(); > + > + //check that the request count is 0 > + assertEquals(0, s1234.getRequests()); > + > + //make a request with multiple valid session ids > + Request request = client.newRequest("http://localhost:" + port1 + contextPath + servletMapping + "?action=check"); > + request.header("Cookie", "JSESSIONID=1234"); > + request.header("Cookie", "JSESSIONID=1234"); > + ContentResponse response = request.send(); > + assertEquals(HttpServletResponse.SC_OK, response.getStatus()); > + > + //check that all valid sessions have their request counts decremented correctly after the request, back to 0 > + assertEquals(0, s1234.getRequests()); > } > finally > { > @@ -189,6 +378,7 @@ > data.setExpiry(now + TimeUnit.DAYS.toMillis(1)); > Session s = cache.newSession(data); > cache.add(id, s); > + s.complete(); //pretend a request that created the session is finished > return s; > } > > diff -Nru jetty9-9.4.38/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/SessionInvalidationTest.java jetty9-9.4.39/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/SessionInvalidationTest.java > --- jetty9-9.4.38/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/SessionInvalidationTest.java 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-sessions/test-sessions-common/src/test/java/org/eclipse/jetty/server/session/SessionInvalidationTest.java 2021-03-25 15:36:22.000000000 +0100 > @@ -30,8 +30,11 @@ > import org.eclipse.jetty.client.api.Request; > import org.eclipse.jetty.servlet.ServletContextHandler; > import org.eclipse.jetty.servlet.ServletHolder; > +import org.eclipse.jetty.util.StringUtil; > import org.junit.jupiter.api.Test; > > +import static org.hamcrest.MatcherAssert.assertThat; > +import static org.hamcrest.Matchers.containsStringIgnoringCase; > import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; > import static org.junit.jupiter.api.Assertions.assertEquals; > import static org.junit.jupiter.api.Assertions.assertNotNull; > @@ -96,6 +99,63 @@ > } > } > > + @Test > + public void testCreateInvalidateCheckWithNullCache() throws Exception > + { > + String contextPath = ""; > + String servletMapping = "/server"; > + int scavengePeriod = -1; > + > + NullSessionCacheFactory cacheFactory = new NullSessionCacheFactory(); > + SessionDataStoreFactory storeFactory = new TestSessionDataStoreFactory(); > + ((AbstractSessionDataStoreFactory)storeFactory).setGracePeriodSec(scavengePeriod); > + > + TestServer server = new TestServer(0, 0, scavengePeriod, > + cacheFactory, storeFactory); > + ServletContextHandler context = server.addContext(contextPath); > + TestServlet servlet = new TestServlet(); > + ServletHolder holder = new ServletHolder(servlet); > + context.addServlet(holder, servletMapping); > + > + try > + { > + server.start(); > + int port1 = server.getPort(); > + > + HttpClient client = new HttpClient(); > + client.start(); > + try > + { > + String url = "http://localhost:" + port1 + contextPath + servletMapping; > + // Create the session > + ContentResponse response1 = client.GET(url + "?action=init"); > + assertEquals(HttpServletResponse.SC_OK, response1.getStatus()); > + String sessionCookie = response1.getHeaders().get("Set-Cookie"); > + assertTrue(sessionCookie != null); > + > + // Make a request which will invalidate the existing session > + Request request2 = client.newRequest(url + "?action=test"); > + ContentResponse response2 = request2.send(); > + assertEquals(HttpServletResponse.SC_OK, response2.getStatus()); > + > + //Make a request to get the session - should not exist > + Request request3 = client.newRequest(url + "?action=get"); > + ContentResponse response3 = request3.send(); > + assertEquals(HttpServletResponse.SC_OK, response3.getStatus()); > + assertThat(response3.getContentAsString(), containsStringIgnoringCase("session=null")); > + > + } > + finally > + { > + client.stop(); > + } > + } > + finally > + { > + server.stop(); > + } > + } > + > public static class TestServlet extends HttpServlet > { > private static final long serialVersionUID = 1L; > @@ -131,6 +191,12 @@ > assertThrows(IllegalStateException.class, () -> session.setAttribute("a", "b")); > assertDoesNotThrow(() -> session.getId()); > } > + else if ("get".equals(action)) > + { > + HttpSession session = request.getSession(false); > + > + httpServletResponse.getWriter().println("SESSION=" + (session == null ? "null" : session.getId())); > + } > } > } > } > diff -Nru jetty9-9.4.38/tests/test-webapps/pom.xml jetty9-9.4.39/tests/test-webapps/pom.xml > --- jetty9-9.4.38/tests/test-webapps/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>tests-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <artifactId>test-webapps-parent</artifactId> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-cdi-common-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-cdi-common-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-cdi-common-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-cdi-common-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-felix-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-felix-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-felix-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-felix-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-http2-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-http2-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-http2-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-http2-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-jaas-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-jaas-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-jaas-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-jaas-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-jaas-webapp</artifactId> > <name>Jetty Tests :: WebApp :: JAAS</name> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-jetty-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-jetty-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-jetty-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-jetty-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-jndi-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-jndi-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-jndi-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-jndi-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-jndi-webapp</artifactId> > <name>Jetty Tests :: WebApp :: JNDI</name> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-mock-resources/pom.xml jetty9-9.4.39/tests/test-webapps/test-mock-resources/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-mock-resources/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-mock-resources/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <name>Jetty Tests :: WebApp :: Mock Resources</name> > <artifactId>test-mock-resources</artifactId> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-owb-cdi-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-owb-cdi-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-owb-cdi-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-owb-cdi-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-proxy-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-proxy-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-proxy-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-proxy-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > <relativePath>../pom.xml</relativePath> > </parent> > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-servlet-spec/pom.xml jetty9-9.4.39/tests/test-webapps/test-servlet-spec/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-servlet-spec/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-servlet-spec/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-servlet-spec-parent</artifactId> > <name>Jetty Tests :: Spec Test WebApp :: Parent</name> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml jetty9-9.4.39/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-servlet-spec-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-container-initializer</artifactId> > <packaging>jar</packaging> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-servlet-spec-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <name>Jetty Tests :: Webapps :: Spec Webapp</name> > <artifactId>test-spec-webapp</artifactId> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml jetty9-9.4.39/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-servlet-spec-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <name>Jetty Tests :: WebApp :: Servlet Spec :: Fragment Jar</name> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-simple-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-simple-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-simple-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-simple-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <artifactId>test-simple-webapp</artifactId> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-webapp-rfc2616/pom.xml jetty9-9.4.39/tests/test-webapps/test-webapp-rfc2616/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-webapp-rfc2616/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-webapp-rfc2616/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -4,7 +4,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > <artifactId>test-webapp-rfc2616</artifactId> > <name>Jetty Tests :: WebApp :: RFC2616</name> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-websocket-client-provided-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-websocket-client-provided-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-websocket-client-provided-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-websocket-client-provided-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-websocket-client-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-websocket-client-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-websocket-client-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-websocket-client-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/tests/test-webapps/test-weld-cdi-webapp/pom.xml jetty9-9.4.39/tests/test-webapps/test-weld-cdi-webapp/pom.xml > --- jetty9-9.4.38/tests/test-webapps/test-weld-cdi-webapp/pom.xml 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/tests/test-webapps/test-weld-cdi-webapp/pom.xml 2021-03-25 15:36:22.000000000 +0100 > @@ -3,7 +3,7 @@ > <parent> > <groupId>org.eclipse.jetty.tests</groupId> > <artifactId>test-webapps-parent</artifactId> > - <version>9.4.38.v20210224</version> > + <version>9.4.39.v20210325</version> > </parent> > > <modelVersion>4.0.0</modelVersion> > diff -Nru jetty9-9.4.38/VERSION.txt jetty9-9.4.39/VERSION.txt > --- jetty9-9.4.38/VERSION.txt 2021-02-24 21:16:09.000000000 +0100 > +++ jetty9-9.4.39/VERSION.txt 2021-03-25 15:36:22.000000000 +0100 > @@ -1,5 +1,19 @@ > +jetty-9.4.39.v20210325 - 25 March 2021 > + + 6034 SslContextFactory may select a wildcard certificate during SNI > + selection when a more specific SSL certificate is present > + + 6050 Websocket: NotUtf8Exception after upgrade 9.4.35 -> 9.4.36 or newer > + + 6052 Cleanup TypeUtil and ModuleLocation to allow jetty-client/hybrid to > + work on Android > + + 6063 Allow override of hazelcast version when using module > + + 6072 jetty server high CPU when client send data length > 17408 > + + 6085 Jetty keeps Sessions in use after "Duplicate valid session cookies" > + Message > + + 6101 Normalise ambiguous URIs > + + 6102 Exclude webapps directory from deployment scan > + > jetty-9.4.38.v20210224 - 24 February 2021 > + 4275 Path Normalization/Traversal - Context Matching > + + 5963 Improve QuotedQualityCSV for CVE-2020-27223 > + 5977 Cache-Control header set by a filter is override by the value from > DefaultServlet configuration > + 5994 QueuedThreadPool "free" threads > @@ -16,6 +30,7 @@ > + 5909 Cannot disable HTTP OPTIONS Method > + 5937 Unnecessary blocking in ResourceService > + 5950 Deadlock due to logging inside classloaders > + + 5963 Improve QuotedQualityCSV - Resolves CVE-2020-27223 > + 5973 Proxy client TLS authentication example > + 5977 Cache-Control header set by a filter is override by the value from > DefaultServlet configuration > @@ -71,7 +86,7 @@ > produced by ForwardedHeader > + 5443 Request without Host header fails with NullPointerException in > ForwardedRequestCustomizer > - + 5451 Improve Working Directory creation > + + 5451 Improve Working Directory creation - Resolves CVE-2020-27216 > + 5454 Request error context is not reset > + 5475 Update to spifly 1.3.2 and asm 9 > + 5480 NPE from WebInfConfiguration.deconfigure during WebAppContext shutdown > @@ -170,7 +185,8 @@ > + 4923 SecureRequestCustomizer.SslAttributes does not cache cert chain like > before > + 4929 HttpClient: HttpCookieStore.Empty prevents sending cookies > - + 4936 Response header overflow leads to buffer corruptions > + + 4936 Response header overflow leads to buffer corruptions - Resolves > + CVE-2019-17638 > > jetty-9.4.29.v20200521 - 21 May 2020 > + 2188 Lock contention creating HTTP/2 streams > @@ -307,7 +323,7 @@ > + 3083 The ini-template for jetty.console-capture.dir does not match the > default value > + 4128 OpenIdCredetials can't decode JWT ID token > - + 4334 Better test ErrorHandler changes > + + 4334 Better test ErrorHandler changes - Resolves CVE-2019-17632 > > jetty-9.4.23.v20191118 - 18 November 2019 > + 1485 Add systemd service file > @@ -397,6 +413,8 @@ > inclusion of sessionid > > jetty-9.4.21.v20190926 - 26 September 2019 > + + Includes fixes for CVE-2019-9511, CVE-2019-9512, CVE-2019-9514, > + CVE-2019-9515, CVE-2019-9516, and CVE-2019-9518 > + 97 Permanent UnavailableException thrown during servlet request handling > should cause servlet destroy > + 137 Support OAuth > @@ -542,8 +560,10 @@ > jetty-9.4.17.v20190418 - 18 April 2019 > + 2140 Infinispan and hazelcast changes to scavenge zombie expired sessions > + 3464 Split SslContextFactory into Client and Server > - + 3549 Directory Listing on Windows reveals Resource Base path > - + 3555 DefaultHandler Reveals Base Resource Path of each Context > + + 3549 Directory Listing on Windows reveals Resource Base path - Resolves > + CVE-2019-10246 > + + 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves > + CVE-2019-10247 > > jetty-9.4.16.v20190411 - 11 April 2019 > + 1861 Limit total bytes pooled by ByteBufferPools > @@ -551,7 +571,8 @@ > + 3159 WebSocket permessage-deflate RSV1 validity check > + 3274 OSGi versions of java.base classes in > org.apache.felix:org.osgi.foundation:jar conflicts with new rules on Java 9+ > - + 3319 Modernize Directory Listing: HTML5 and Sorting > + + 3319 Modernize Directory Listing: HTML5 and Sorting - Resolves > + CVE-2019-10241 > + 3361 HandlerCollection.addHandler is lacking synchronization > + 3373 OutOfMemoryError: Java heap space in GZIPContentDecoder > + 3389 Websockets jsr356 willDecode not invoked during decoding > @@ -624,8 +645,10 @@ > + 4217 SslConnection.DecryptedEnpoint.flush eternal busy loop > > jetty-9.3.27.v20190418 - 18 April 2019 > - + 3549 Directory Listing on Windows reveals Resource Base path > - + 3555 DefaultHandler Reveals Base Resource Path of each Context > + + 3549 Directory Listing on Windows reveals Resource Base path - Resolves > + CVE-2019-10246 > + + 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves > + CVE-2019-10247 > > jetty-9.3.26.v20190403 - 03 April 2019 > + 2954 Improve cause reporting for HttpClient failures > @@ -633,17 +656,20 @@ > org.apache.felix:org.osgi.foundation:jar conflicts with new rules on Java 9+ > + 3302 Support host:port in X-Forwarded-For header in > ForwardedRequestCustomizer > - + 3319 Allow reverse sort for directory listed files > + + 3319 Allow reverse sort for directory listed files - Resolves CVE-2019-10241 > > jetty-9.2.29.v20191105 - 05 November 2019 > + 4217 SslConnection.DecryptedEnpoint.flush eternal busy loop > > jetty-9.2.28.v20190418 - 18 April 2019 > - + 3549 Directory Listing on Windows reveals Resource Base path > - + 3555 DefaultHandler Reveals Base Resource Path of each Context > + + 3549 Directory Listing on Windows reveals Resource Base path - Resolves > + CVE-2019-10246 > + + 3555 DefaultHandler Reveals Base Resource Path of each Context - Resolves > + CVE-2019-10247 > > jetty-9.2.27.v20190403 - 03 April 2019 > - + 3319 Refactored Directory Listing to modernize and avoid XSS > + + 3319 Refactored Directory Listing to modernize and avoid XSS - Resolves > + CVE-2019-10241 > > jetty-9.4.14.v20181114 - 14 November 2018 > + 3097 Duplicated programmatic Servlet Listeners causing duplicate calls -- Sebastian Ramacher
Attachment:
signature.asc
Description: PGP signature