diff --git a/VERSION.txt b/VERSION.txt index 81f1e50a8b5..4f7907f346d 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -16,6 +16,7 @@ jetty-7.5.0-SNAPSHOT + 353563 HttpDestinationQueueTest too slow + 353862 Improve performance of QuotedStringTokenizer.quote() + 354014 Content-Length is passed to wrapped response in GZipFilter + + 354204 Charset encodings property file not used jetty-7.4.4.v20110707 July 7th 2011 + 308851 Converted all jetty-client module tests to JUnit 4 diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/MimeTypes.java b/jetty-http/src/main/java/org/eclipse/jetty/http/MimeTypes.java index 4916602dc92..5344863c3bd 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/MimeTypes.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/MimeTypes.java @@ -293,7 +293,6 @@ public class MimeTypes case TEXT_XML_8859_1_ORDINAL: return StringUtil.__ISO_8859_1; - case TEXT_JSON_ORDINAL: case TEXT_HTML_UTF_8_ORDINAL: case TEXT_PLAIN_UTF_8_ORDINAL: case TEXT_XML_UTF_8_ORDINAL: @@ -363,6 +362,7 @@ public class MimeTypes if (state==10) return CACHE.lookup(value.peek(start,i-start)).toString(); - return null; + + return (String)__encodings.get(value); } } diff --git a/jetty-http/src/main/resources/org/eclipse/jetty/http/encoding.properties b/jetty-http/src/main/resources/org/eclipse/jetty/http/encoding.properties index c3e5b7ecc82..311c802190e 100644 --- a/jetty-http/src/main/resources/org/eclipse/jetty/http/encoding.properties +++ b/jetty-http/src/main/resources/org/eclipse/jetty/http/encoding.properties @@ -1,3 +1,4 @@ text/html = ISO-8859-1 -text/plain = US-ASCII +text/plain = ISO-8859-1 text/xml = UTF-8 +text/json = UTF-8 diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java index 88c5bb8f74a..d1efa45da9c 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java @@ -657,8 +657,8 @@ public class Response implements HttpServletResponse if (encoding==null) { /* implementation of educated defaults */ - if(_mimeType!=null) - encoding = null; // TODO getHttpContext().getEncodingByMimeType(_mimeType); + if(_cachedMimeType != null) + encoding = MimeTypes.getCharsetFromContentType(_cachedMimeType); if (encoding==null) encoding = StringUtil.__ISO_8859_1; diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java index 3b8dc76f8f1..8b1c982db7f 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java @@ -65,7 +65,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture private static final String REQUEST2_HEADER= "POST / HTTP/1.0\n"+ "Host: localhost\n"+ - "Content-Type: text/xml\n"+ + "Content-Type: text/xml;charset=ISO-8859-1\n"+ "Content-Length: "; private static final String REQUEST2_CONTENT= "\n"+ diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ResponseTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ResponseTest.java index d9f57f06426..29ab7d91e03 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/ResponseTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ResponseTest.java @@ -114,11 +114,20 @@ public class ResponseTest assertEquals("foo2/bar2;charset=ISO-8859-1",response.getContentType()); response.recycle(); - response.setContentType("text/xml;charset=ISO-8859-7"); response.getWriter(); response.setContentType("text/html;charset=UTF-8"); assertEquals("text/html;charset=ISO-8859-7",response.getContentType()); + + response.recycle(); + response.setContentType("text/html;charset=US-ASCII"); + response.getWriter(); + assertEquals("text/html;charset=US-ASCII",response.getContentType()); + + response.recycle(); + response.setContentType("text/json"); + response.getWriter(); + assertEquals("text/json;charset=UTF-8", response.getContentType()); } @Test