You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/12/18 21:30:32 UTC

svn commit: r1552083 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/tomcat/websocket/server/UpgradeUtil.java java/org/apache/tomcat/websocket/server/WsFilter.java java/org/apache/tomcat/websocket/server/WsServerContainer.java

Author: markt
Date: Wed Dec 18 20:30:32 2013
New Revision: 1552083

URL: http://svn.apache.org/r1552083
Log:
Alternative partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=55855. Don't do the expensive 'Is this a WebSocket upgrade request check' if no endpoints have been registered
Also fix method name typo

Modified:
    tomcat/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
  Merged /tomcat/trunk:r1552042

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java?rev=1552083&r1=1552082&r2=1552083&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java Wed Dec 18 20:30:32 2013
@@ -67,7 +67,7 @@ public class UpgradeUtil {
      *       WebSocket spec 1.0, section 8.2 implies such a limitation and RFC
      *       6455 section 4.1 requires that a WebSocket Upgrade uses GET.
      */
-    public static boolean isWebSocketUpgrageRequest(ServletRequest request,
+    public static boolean isWebSocketUpgradeRequest(ServletRequest request,
             ServletResponse response) {
 
         return ((request instanceof HttpServletRequest) &&

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1552083&r1=1552082&r2=1552083&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java Wed Dec 18 20:30:32 2013
@@ -47,7 +47,8 @@ public class WsFilter implements Filter 
             FilterChain chain) throws IOException, ServletException {
 
         // This filter only needs to handle WebSocket upgrade requests
-        if (!UpgradeUtil.isWebSocketUpgrageRequest(request, response)) {
+        if (!sc.areEndpointsRegistered() ||
+                !UpgradeUtil.isWebSocketUpgradeRequest(request, response)) {
             chain.doFilter(request, response);
             return;
         }

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1552083&r1=1552082&r2=1552083&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java Wed Dec 18 20:30:32 2013
@@ -88,6 +88,7 @@ public class WsServerContainer extends W
     private final ConcurrentHashMap<String,Set<WsSession>> authenticatedSessions =
             new ConcurrentHashMap<String, Set<WsSession>>();
     private final ExecutorService executorService;
+    private volatile boolean endpointsRegistered = false;
 
     WsServerContainer(ServletContext servletContext) {
 
@@ -208,6 +209,8 @@ public class WsServerContainer extends W
                         sm.getString("serverContainer.duplicatePaths", path));
             }
         }
+
+        endpointsRegistered = true;
     }
 
 
@@ -270,6 +273,11 @@ public class WsServerContainer extends W
     }
 
 
+    boolean areEndpointsRegistered() {
+        return endpointsRegistered;
+    }
+
+
     public void doUpgrade(HttpServletRequest request,
             HttpServletResponse response, ServerEndpointConfig sec,
             Map<String,String> pathParams)



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org