Hi Mark,

2013/12/18 <ma...@apache.org>
>
> Author: markt
> Date: Wed Dec 18 17:29:08 2013
> New Revision: 1552042
>
> URL: http://svn.apache.org/r1552042
> 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

Will we downport this fix to Tomcat 7?

Thanks
Violeta

> Modified:
>     tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
>
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java
>
> Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
> URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java?rev=1552042&r1=1552041&r2=1552042&view=diff
>
==============================================================================
> --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
(original)
> +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsFilter.java
Wed Dec 18 17:29:08 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.isWebSocketUpgradeRequest(request, response)) {
> +        if (!sc.areEndpointsRegistered() ||
> +                !UpgradeUtil.isWebSocketUpgradeRequest(request,
response)) {
>              chain.doFilter(request, response);
>              return;
>          }
>
> Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java
> URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java?rev=1552042&r1=1552041&r2=1552042&view=diff
>
==============================================================================
> ---
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java
(original)
> +++
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java
Wed Dec 18 17:29:08 2013
> @@ -88,6 +88,7 @@ public class WsServerContainer extends W
>      private final ConcurrentHashMap<String,Set<WsSession>>
authenticatedSessions =
>              new ConcurrentHashMap<>();
>      private final ExecutorService executorService;
> +    private volatile boolean endpointsRegistered = false;
>
>      WsServerContainer(ServletContext servletContext) {
>
> @@ -210,6 +211,8 @@ public class WsServerContainer extends W
>                          sm.getString("serverContainer.duplicatePaths",
path));
>              }
>          }
> +
> +        endpointsRegistered = true;
>      }
>
>
> @@ -267,6 +270,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
>

Reply via email to