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: [email protected]
For additional commands, e-mail: [email protected]