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 18:29:08 UTC
svn commit: r1552042 - in
/tomcat/trunk/java/org/apache/tomcat/websocket/server: WsFilter.java
WsServerContainer.java
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
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1552042 - in /tomcat/trunk/java/org/apache/tomcat/websocket/server:
WsFilter.java WsServerContainer.java
Posted by Violeta Georgieva <mi...@gmail.com>.
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-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>