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