Author: markt
Date: Fri Nov 28 17:30:55 2014
New Revision: 1642327
URL: http://svn.apache.org/r1642327
Log:
Make use of the new case-insensitive map implementation.
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/Constants.java
tomcat/trunk/java/org/apache/tomcat/websocket/WsHandshakeResponse.java
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/Constants.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/Constants.java?rev=1642327&r1=1642326&r2=1642327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/Constants.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/Constants.java Fri Nov 28
17:30:55 2014
@@ -19,7 +19,6 @@ package org.apache.tomcat.websocket;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Locale;
import javax.websocket.Extension;
@@ -57,12 +56,8 @@ public class Constants {
public static final String WS_KEY_HEADER_NAME = "Sec-WebSocket-Key";
public static final String WS_PROTOCOL_HEADER_NAME =
"Sec-WebSocket-Protocol";
- public static final String WS_PROTOCOL_HEADER_NAME_LOWER =
- WS_PROTOCOL_HEADER_NAME.toLowerCase(Locale.ENGLISH);
public static final String WS_EXTENSIONS_HEADER_NAME =
"Sec-WebSocket-Extensions";
- public static final String WS_EXTENSIONS_HEADER_NAME_LOWER =
- WS_EXTENSIONS_HEADER_NAME.toLowerCase(Locale.ENGLISH);
public static final boolean STRICT_SPEC_COMPLIANCE =
Boolean.getBoolean(
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsHandshakeResponse.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsHandshakeResponse.java?rev=1642327&r1=1642326&r2=1642327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsHandshakeResponse.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsHandshakeResponse.java Fri
Nov 28 17:30:55 2014
@@ -16,9 +16,10 @@
*/
package org.apache.tomcat.websocket;
-import java.util.HashMap;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import javax.websocket.HandshakeResponse;
@@ -27,16 +28,22 @@ import javax.websocket.HandshakeResponse
*/
public class WsHandshakeResponse implements HandshakeResponse {
- private final Map<String,List<String>> headers;
+ private final Map<String,List<String>> headers = new
CaseInsensitiveKeyMap<>();
public WsHandshakeResponse() {
- this(new HashMap<String,List<String>>());
}
public WsHandshakeResponse(Map<String,List<String>> headers) {
- this.headers = headers;
+ for (Entry<String,List<String>> entry : headers.entrySet()) {
+ if (this.headers.containsKey(entry.getKey())) {
+ this.headers.get(entry.getKey()).addAll(entry.getValue());
+ } else {
+ List<String> values = new ArrayList<>(entry.getValue());
+ this.headers.put(entry.getKey(), values);
+ }
+ }
}
Modified:
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1642327&r1=1642326&r2=1642327&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Fri
Nov 28 17:30:55 2014
@@ -303,9 +303,8 @@ public class WsWebSocketContainer
afterResponse(handshakeResponse);
// Sub-protocol
- // Header names are always stored in lower case
List<String> protocolHeaders = handshakeResponse.getHeaders().get(
- Constants.WS_PROTOCOL_HEADER_NAME_LOWER);
+ Constants.WS_PROTOCOL_HEADER_NAME);
if (protocolHeaders == null || protocolHeaders.size() == 0) {
subProtocol = null;
} else if (protocolHeaders.size() == 1) {
@@ -319,7 +318,7 @@ public class WsWebSocketContainer
// Should normally only be one header but handle the case of
// multiple headers
List<String> extHeaders = handshakeResponse.getHeaders().get(
- Constants.WS_EXTENSIONS_HEADER_NAME_LOWER);
+ Constants.WS_EXTENSIONS_HEADER_NAME);
if (extHeaders != null) {
for (String extHeader : extHeaders) {
Util.parseExtensionHeader(extensionsAgreed, extHeader);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]