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