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/08/19 23:24:06 UTC

svn commit: r1515612 - /tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java

Author: markt
Date: Mon Aug 19 21:24:05 2013
New Revision: 1515612

URL: http://svn.apache.org/r1515612
Log:
Don't try and register a WebSocket session that we know to be closed.

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=1515612&r1=1515611&r2=1515612&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Mon Aug 19 21:24:05 2013
@@ -128,7 +128,15 @@ public class WsHttpUpgradeHandler implem
             sos.setWriteListener(
                     new WsWriteListener(this, wsRemoteEndpointServer));
             ep.onOpen(wsSession, endpointConfig);
-            webSocketContainer.registerSession(ep, wsSession);
+            // If onOpen event throws an exception, the session will be closed.
+            if (wsSession.isOpen()) {
+                webSocketContainer.registerSession(ep, wsSession);
+            } else {
+                // Have to throw a RuntimeException to signal that init() failed
+                // as API offers no other options.
+                throw new IllegalStateException(
+                        sm.getString("wsHttpUpgradeHandler.initFailed"));
+            }
         } 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