Author: markt
Date: Tue Nov 13 14:30:52 2012
New Revision: 1408750

URL: http://svn.apache.org/viewvc?rev=1408750&view=rev
Log:
Make parameter names in MediaType case-insensitive.
Based on review by kkolinko

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java
    tomcat/trunk/java/org/apache/tomcat/util/http/parser/MediaType.java
    tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestMediaType.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java?rev=1408750&r1=1408749&r2=1408750&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java Tue 
Nov 13 14:30:52 2012
@@ -201,9 +201,9 @@ public class HttpParser {
 
             if (skipConstant(input, "=") == SkipConstantResult.FOUND) {
                 String value = readTokenOrQuotedString(input, true);
-                parameters.put(attribute, value);
+                parameters.put(attribute.toLowerCase(Locale.US), value);
             } else {
-                parameters.put(attribute, "");
+                parameters.put(attribute.toLowerCase(Locale.US), "");
             }
 
             lookForSemiColon = skipConstant(input, ";");

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/parser/MediaType.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/parser/MediaType.java?rev=1408750&r1=1408749&r2=1408750&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/parser/MediaType.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/parser/MediaType.java Tue Nov 
13 14:30:52 2012
@@ -17,6 +17,7 @@
 package org.apache.tomcat.util.http.parser;
 
 import java.util.LinkedHashMap;
+import java.util.Locale;
 import java.util.Map;
 
 public class MediaType {
@@ -59,7 +60,7 @@ public class MediaType {
     }
 
     public String getParameterValue(String parameter) {
-        return parameters.get(parameter);
+        return parameters.get(parameter.toLowerCase(Locale.US));
     }
 
     @Override

Modified: 
tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestMediaType.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestMediaType.java?rev=1408750&r1=1408749&r2=1408750&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestMediaType.java 
(original)
+++ tomcat/trunk/test/org/apache/tomcat/util/http/parser/TestMediaType.java Tue 
Nov 13 14:30:52 2012
@@ -19,6 +19,8 @@ package org.apache.tomcat.util.http.pars
 import java.io.IOException;
 import java.io.StringReader;
 
+import junit.framework.Assert;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -257,4 +259,15 @@ public class TestMediaType {
             return sb.toString();
         }
     }
+
+    @Test
+    public void testCase() throws Exception {
+        StringReader sr = new StringReader("type/sub-type;a=1;B=2");
+        MediaType m = HttpParser.parseMediaType(sr);
+
+        Assert.assertEquals("1", m.getParameterValue("A"));
+        Assert.assertEquals("1", m.getParameterValue("a"));
+        Assert.assertEquals("2", m.getParameterValue("B"));
+        Assert.assertEquals("2", m.getParameterValue("b"));
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to