Author: markt
Date: Mon Aug 19 23:32:28 2013
New Revision: 1515664

URL: http://svn.apache.org/r1515664
Log:
Rework r1515612
Avoid ISE when session is closed.

Modified:
    
tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java
    tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.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=1515664&r1=1515663&r2=1515664&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 23:32:28 2013
@@ -128,15 +128,7 @@ public class WsHttpUpgradeHandler implem
             sos.setWriteListener(
                     new WsWriteListener(this, wsRemoteEndpointServer));
             ep.onOpen(wsSession, endpointConfig);
-            // 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"));
-            }
+            webSocketContainer.registerSession(ep, wsSession);
         } catch (DeploymentException e) {
             throw new IllegalArgumentException(e);
         } finally {

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=1515664&r1=1515663&r2=1515664&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsServerContainer.java 
Mon Aug 19 23:32:28 2013
@@ -318,7 +318,8 @@ public class WsServerContainer extends W
     @Override
     protected void registerSession(Endpoint endpoint, WsSession wsSession) {
         super.registerSession(endpoint, wsSession);
-        if (wsSession.getUserPrincipal() != null &&
+        if (wsSession.isOpen() &&
+                wsSession.getUserPrincipal() != null &&
                 wsSession.getHttpSessionId() != null) {
             registerAuthenticatedSession(wsSession,
                     wsSession.getHttpSessionId());



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to