Author: violetagg
Date: Wed Sep 17 06:36:35 2014
New Revision: 1625471
URL: http://svn.apache.org/r1625471
Log:
Merged revision 1606653 from tomcat/trunk:
Fix root cause of NPE when using WebSocket clients.
Modified:
tomcat/tc7.0.x/trunk/ (props changed)
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsFrameClient.java
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
Merged /tomcat/trunk:r1606653
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsFrameClient.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsFrameClient.java?rev=1625471&r1=1625470&r2=1625471&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsFrameClient.java
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsFrameClient.java
Wed Sep 17 06:36:35 2014
@@ -37,7 +37,10 @@ public class WsFrameClient extends WsFra
this.response = response;
this.channel = channel;
this.handler = new WsFrameClientCompletionHandler();
+ }
+
+ void startInputProcessing() {
try {
processSocketRead();
} catch (IOException e) {
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1625471&r1=1625470&r2=1625471&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
(original)
+++
tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
Wed Sep 17 06:36:35 2014
@@ -344,8 +344,6 @@ public class WsWebSocketContainer
}
}
- // TODO Add extension/transformation support to the client
-
// Switch to WebSocket
WsRemoteEndpointImplClient wsRemoteEndpointClient = new
WsRemoteEndpointImplClient(channel);
@@ -353,13 +351,17 @@ public class WsWebSocketContainer
this, null, null, null, null, null, subProtocol,
Collections.<String, String> emptyMap(), secure,
clientEndpointConfiguration);
- endpoint.onOpen(wsSession, clientEndpointConfiguration);
- registerSession(endpoint, wsSession);
- // Object creation will trigger input processing
- @SuppressWarnings("unused")
WsFrameClient wsFrameClient = new WsFrameClient(response, channel,
wsSession);
+ // WsFrame adds the necessary final transformations. Copy the
+ // completed transformation chain to the remote end point.
+
wsRemoteEndpointClient.setTransformation(wsFrameClient.getTransformation());
+
+ endpoint.onOpen(wsSession, clientEndpointConfiguration);
+ registerSession(endpoint, wsSession);
+
+ wsFrameClient.startInputProcessing();
return wsSession;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]