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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org