You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2015/02/24 17:44:05 UTC
svn commit: r1662014 -
/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
Author: remm
Date: Tue Feb 24 16:44:05 2015
New Revision: 1662014
URL: http://svn.apache.org/r1662014
Log:
Catch ISE thrown by the closed IS for a rare but possibly legitimate scenario.
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1662014&r1=1662013&r2=1662014&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Tue Feb 24 16:44:05 2015
@@ -137,7 +137,11 @@ public class WsHttpUpgradeHandler implem
wsRemoteEndpointServer.setTransformation(wsFrame.getTransformation());
ep.onOpen(wsSession, endpointConfig);
webSocketContainer.registerSession(ep, wsSession);
- sis.setReadListener(new WsReadListener(this, wsFrame));
+ try {
+ sis.setReadListener(new WsReadListener(this, wsFrame));
+ } catch (IllegalStateException e) {
+ // It is not impossible that the stream is already closed during onOpen
+ }
} catch (DeploymentException e) {
throw new IllegalArgumentException(e);
} finally {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1662014 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
Posted by Rémy Maucherat <re...@apache.org>.
2015-02-24 21:26 GMT+01:00 Christopher Schultz <chris@christopherschultz.net
>:
> Rémy,
>
> On 2/24/15 11:44 AM, remm@apache.org wrote:
> > Author: remm
> > Date: Tue Feb 24 16:44:05 2015
> > New Revision: 1662014
> >
> > URL: http://svn.apache.org/r1662014
> > Log:
> > Catch ISE thrown by the closed IS for a rare but possibly legitimate
> scenario.
> >
> > Modified:
> >
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
> >
> > Modified:
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
> > URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1662014&r1=1662013&r2=1662014&view=diff
> >
> ==============================================================================
> > ---
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
> (original)
> > +++
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
> Tue Feb 24 16:44:05 2015
> > @@ -137,7 +137,11 @@ public class WsHttpUpgradeHandler implem
> >
> wsRemoteEndpointServer.setTransformation(wsFrame.getTransformation());
> > ep.onOpen(wsSession, endpointConfig);
> > webSocketContainer.registerSession(ep, wsSession);
> > - sis.setReadListener(new WsReadListener(this, wsFrame));
> > + try {
> > + sis.setReadListener(new WsReadListener(this, wsFrame));
> > + } catch (IllegalStateException e) {
> > + // It is not impossible that the stream is already
> closed during onOpen
> > + }
>
> Do you think it would it be useful to add a trace-level log in the catch
> branch, for debugging?
>
Some user code is run before that, so a lot of things can happen and since
this code is inside the container, it looks fine to me.
Rémy
Re: svn commit: r1662014 -
/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
Posted by Christopher Schultz <ch...@christopherschultz.net>.
Rémy,
On 2/24/15 11:44 AM, remm@apache.org wrote:
> Author: remm
> Date: Tue Feb 24 16:44:05 2015
> New Revision: 1662014
>
> URL: http://svn.apache.org/r1662014
> Log:
> Catch ISE thrown by the closed IS for a rare but possibly legitimate scenario.
>
> Modified:
> tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
>
> Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1662014&r1=1662013&r2=1662014&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original)
> +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Tue Feb 24 16:44:05 2015
> @@ -137,7 +137,11 @@ public class WsHttpUpgradeHandler implem
> wsRemoteEndpointServer.setTransformation(wsFrame.getTransformation());
> ep.onOpen(wsSession, endpointConfig);
> webSocketContainer.registerSession(ep, wsSession);
> - sis.setReadListener(new WsReadListener(this, wsFrame));
> + try {
> + sis.setReadListener(new WsReadListener(this, wsFrame));
> + } catch (IllegalStateException e) {
> + // It is not impossible that the stream is already closed during onOpen
> + }
Do you think it would it be useful to add a trace-level log in the catch
branch, for debugging?
-chris