You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2013/08/20 17:02:24 UTC
svn commit: r1515841 - in /tomcat/trunk:
java/org/apache/tomcat/util/http/parser/HttpParser.java
test/org/apache/tomcat/util/http/parser/TestMediaType.java
Author: violetagg
Date: Tue Aug 20 15:02:23 2013
New Revision: 1515841
URL: http://svn.apache.org/r1515841
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55454
Fixed NPE thrown when parsing an invalid content type.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.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=1515841&r1=1515840&r2=1515841&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 Aug 20 15:02:23 2013
@@ -208,11 +208,13 @@ public class HttpParser {
while (lookForSemiColon == SkipConstantResult.FOUND) {
String attribute = readToken(input);
+ String value = "";
if (skipConstant(input, "=") == SkipConstantResult.FOUND) {
- String value = readTokenOrQuotedString(input, true);
+ value = readTokenOrQuotedString(input, true);
+ }
+
+ if (attribute != null) {
parameters.put(attribute.toLowerCase(Locale.ENGLISH), value);
- } else {
- parameters.put(attribute.toLowerCase(Locale.ENGLISH), "");
}
lookForSemiColon = skipConstant(input, ";");
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=1515841&r1=1515840&r2=1515841&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 Aug 20 15:02:23 2013
@@ -212,6 +212,25 @@ public class TestMediaType {
}
+ @Test
+ public void testBug55454() throws IOException {
+ String input = "text/html;;charset=UTF-8";
+
+ StringReader sr = new StringReader(input);
+ MediaType m = HttpParser.parseMediaType(sr);
+
+ assertEquals("text", m.getType());
+ assertEquals("html", m.getSubtype());
+
+ assertTrue(m.getParameterCount() == 1);
+
+ assertEquals("UTF-8", m.getParameterValue("charset"));
+ assertEquals("UTF-8", m.getCharset());
+
+ assertEquals("text/html; charset=UTF-8", m.toString());
+ }
+
+
private void doTest(Parameter... parameters) throws IOException {
for (String lws : LWS_VALUES) {
doTest(lws, parameters);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org