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();
        }
 }

Reply via email to