From e8fc90ce3e4554f14eaa86ce05591249d3fe62fa Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Fri, 13 Jan 2012 15:25:53 -0500 Subject: [PATCH] SPR-8917 Fix issue with quoted parameter values in MediaType. --- .../src/main/java/org/springframework/http/MediaType.java | 6 +++--- .../test/java/org/springframework/http/MediaTypeTests.java | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/org.springframework.web/src/main/java/org/springframework/http/MediaType.java b/org.springframework.web/src/main/java/org/springframework/http/MediaType.java index b2f8a800b0..d467e1feae 100644 --- a/org.springframework.web/src/main/java/org/springframework/http/MediaType.java +++ b/org.springframework.web/src/main/java/org/springframework/http/MediaType.java @@ -331,7 +331,7 @@ public class MediaType implements Comparable { String attribute = entry.getKey(); String value = entry.getValue(); checkParameters(attribute, value); - m.put(attribute, unquote(value)); + m.put(attribute, value); } this.parameters = Collections.unmodifiableMap(m); } @@ -428,7 +428,7 @@ public class MediaType implements Comparable { */ public Charset getCharSet() { String charSet = getParameter(PARAM_CHARSET); - return (charSet != null ? Charset.forName(charSet) : null); + return (charSet != null ? Charset.forName(unquote(charSet)) : null); } /** @@ -438,7 +438,7 @@ public class MediaType implements Comparable { */ public double getQualityValue() { String qualityFactory = getParameter(PARAM_QUALITY_FACTOR); - return (qualityFactory != null ? Double.parseDouble(qualityFactory) : 1D); + return (qualityFactory != null ? Double.parseDouble(unquote(qualityFactory)) : 1D); } /** diff --git a/org.springframework.web/src/test/java/org/springframework/http/MediaTypeTests.java b/org.springframework.web/src/test/java/org/springframework/http/MediaTypeTests.java index 70bc486d60..5ed742a0eb 100644 --- a/org.springframework.web/src/test/java/org/springframework/http/MediaTypeTests.java +++ b/org.springframework.web/src/test/java/org/springframework/http/MediaTypeTests.java @@ -173,9 +173,12 @@ public class MediaTypeTests { MediaType.parseMediaType("text/html; charset=foo-bar"); } + // SPR-8917 + @Test public void parseMediaTypeQuotedParameterValue() { - MediaType.parseMediaType("audio/*;attr=\"v>alue\""); + MediaType mediaType = MediaType.parseMediaType("audio/*;attr=\"v>alue\""); + assertEquals("\"v>alue\"", mediaType.getParameter("attr")); } @Test(expected = IllegalArgumentException.class) -- GitLab