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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to