Repository: wicket Updated Branches: refs/heads/master f57554df8 -> 49232763b
WICKET-6345 Check for non-null PushBuilder before trying to use it Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/49232763 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/49232763 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/49232763 Branch: refs/heads/master Commit: 49232763b2d5727d5b08850afe25d5040773b8d2 Parents: f57554d Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Thu Mar 23 17:10:00 2017 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Thu Mar 23 17:10:00 2017 +0100 ---------------------------------------------------------------------- .../wicket-http2/wicket-http2-jetty/pom.xml | 2 +- .../http2/markup/head/Jetty9PushBuilder.java | 18 +++++++++++++++--- .../wicket-http2/wicket-http2-tomcat/pom.xml | 2 +- .../http2/markup/head/Tomcat85PushBuilder.java | 18 +++++++++++++++--- 4 files changed, 32 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/49232763/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml index 821d031..a77c9f8 100644 --- a/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml +++ b/wicket-experimental/wicket-http2/wicket-http2-jetty/pom.xml @@ -40,7 +40,7 @@ <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> - <version>9.3.10.v20160621</version> + <version>${jetty.version}</version> <scope>provided</scope> </dependency> </dependencies> http://git-wip-us.apache.org/repos/asf/wicket/blob/49232763/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/Jetty9PushBuilder.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/Jetty9PushBuilder.java b/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/Jetty9PushBuilder.java index 90bd10f..95dce31 100644 --- a/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/Jetty9PushBuilder.java +++ b/wicket-experimental/wicket-http2/wicket-http2-jetty/src/main/java/org/apache/wicket/http2/markup/head/Jetty9PushBuilder.java @@ -20,6 +20,8 @@ import javax.servlet.http.HttpServletRequest; import org.apache.wicket.request.Request; import org.apache.wicket.request.cycle.RequestCycle; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Allows to push resources with the Jetty 9.3+ specific push builder API @@ -28,16 +30,26 @@ import org.apache.wicket.request.cycle.RequestCycle; */ public class Jetty9PushBuilder implements PushBuilder { + private static final Logger LOG = LoggerFactory.getLogger(Jetty9PushBuilder.class); + @Override public void push(HttpServletRequest httpServletRequest, String... paths) { Request request = RequestCycle.get().getRequest(); HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest(); org.eclipse.jetty.server.PushBuilder pushBuilder = org.eclipse.jetty.server.Request.getBaseRequest(httpRequest).getPushBuilder(); - for (String path : paths) + if (pushBuilder != null) + { + for (String path : paths) + { + pushBuilder.path(path); + } + pushBuilder.push(); + } + else { - pushBuilder.path(path); + LOG.warn("Attempted to use HTTP2 Push but it is not supported for the current request: {}!", + httpRequest); } - pushBuilder.push(); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/49232763/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml b/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml index 5bc7c46..b216ea0 100644 --- a/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml +++ b/wicket-experimental/wicket-http2/wicket-http2-tomcat/pom.xml @@ -40,7 +40,7 @@ <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-catalina</artifactId> - <version>8.5.3</version> + <version>8.5.12</version> <scope>provided</scope> </dependency> </dependencies> http://git-wip-us.apache.org/repos/asf/wicket/blob/49232763/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/Tomcat85PushBuilder.java ---------------------------------------------------------------------- diff --git a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/Tomcat85PushBuilder.java b/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/Tomcat85PushBuilder.java index aec85d5..8dfba97 100644 --- a/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/Tomcat85PushBuilder.java +++ b/wicket-experimental/wicket-http2/wicket-http2-tomcat/src/main/java/org/apache/wicket/http2/markup/head/Tomcat85PushBuilder.java @@ -20,12 +20,16 @@ import javax.servlet.http.HttpServletRequest; import org.apache.wicket.request.Request; import org.apache.wicket.request.cycle.RequestCycle; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Allows to push resources with the Tomcat 8.5+ specific push builder API */ public class Tomcat85PushBuilder implements PushBuilder { + private static final Logger LOG = LoggerFactory.getLogger(Tomcat85PushBuilder.class); + @Override public void push(HttpServletRequest httpServletRequest, String... paths) { @@ -33,10 +37,18 @@ public class Tomcat85PushBuilder implements PushBuilder HttpServletRequest httpRequest = (HttpServletRequest) request.getContainerRequest(); org.apache.catalina.connector.RequestFacade tomcatRequest = (org.apache.catalina.connector.RequestFacade) httpRequest; org.apache.catalina.servlet4preview.http.PushBuilder pushBuilder = tomcatRequest.getPushBuilder(); - for (String path : paths) + if (pushBuilder != null) + { + for (String path : paths) + { + pushBuilder.path(path); + } + pushBuilder.push(); + } + else { - pushBuilder.path(path); + LOG.warn("Attempted to use HTTP2 Push but it is not supported for the current request: {}!", + httpRequest); } - pushBuilder.push(); } }
