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