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

Reply via email to