You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/07/10 21:29:58 UTC

svn commit: r1801540 - in /tomcat/trunk: java/org/apache/catalina/servlets/DefaultServlet.java test/org/apache/catalina/servlets/TestDefaultServlet.java test/webapp/404.html

Author: markt
Date: Mon Jul 10 21:29:58 2017
New Revision: 1801540

URL: http://svn.apache.org/viewvc?rev=1801540&view=rev
Log:
Further 49464 fixes - precompression
Update unit tests to avoid conversion

Added:
    tomcat/trunk/test/webapp/404.html   (with props)
Modified:
    tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
    tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java

Modified: tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java?rev=1801540&r1=1801539&r2=1801540&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Mon Jul 10 21:29:58 2017
@@ -965,7 +965,8 @@ public class DefaultServlet extends Http
         String outputEncoding = response.getCharacterEncoding();
         Charset charset = B2CConverter.getCharset(outputEncoding);
         boolean conversionRequired;
-        if (isText(contentType) && !charset.equals(fileEncodingCharset)) {
+        if (!usingPrecompressedVersion && isText(contentType) &&
+                !charset.equals(fileEncodingCharset)) {
             conversionRequired = true;
             // Conversion often results fewer/more/different bytes.
             // That does not play nicely with range requests.

Modified: tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java?rev=1801540&r1=1801539&r2=1801540&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java (original)
+++ tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java Mon Jul 10 21:29:58 2017
@@ -54,6 +54,7 @@ import org.apache.catalina.startup.Tomca
 import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.tomcat.util.buf.B2CConverter;
 import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.descriptor.web.ErrorPage;
 import org.apache.tomcat.util.http.parser.MediaType;
 import org.apache.tomcat.websocket.server.WsContextListener;
 
@@ -120,6 +121,7 @@ public class TestDefaultServlet extends
         Wrapper defaultServlet = Tomcat.addServlet(ctxt, "default",
                 "org.apache.catalina.servlets.DefaultServlet");
         defaultServlet.addInitParameter("gzip", "true");
+        defaultServlet.addInitParameter("fileEncoding", "ISO-8859-1");
         ctxt.addServletMappingDecoded("/", "default");
 
         ctxt.addMimeMapping("html", "text/html");
@@ -175,6 +177,7 @@ public class TestDefaultServlet extends
         Wrapper defaultServlet = Tomcat.addServlet(ctxt, "default",
                 "org.apache.catalina.servlets.DefaultServlet");
         defaultServlet.addInitParameter("precompressed", "true");
+        defaultServlet.addInitParameter("fileEncoding", "ISO-8859-1");
 
         ctxt.addServletMappingDecoded("/", "default");
         ctxt.addMimeMapping("html", "text/html");
@@ -285,6 +288,7 @@ public class TestDefaultServlet extends
         Wrapper defaultServlet = Tomcat.addServlet(ctxt, "default",
                 DefaultServlet.class.getName());
         defaultServlet.addInitParameter("precompressed", "br=.br,gzip=.gz");
+        defaultServlet.addInitParameter("fileEncoding", "ISO-8859-1");
 
         ctxt.addServletMappingDecoded("/", "default");
         ctxt.addMimeMapping("html", "text/html");
@@ -455,36 +459,24 @@ public class TestDefaultServlet extends
      */
     @Test
     public void testCustomErrorPage() throws Exception {
-        File appDir = new File(getTemporaryDirectory(), "MyApp");
-        File webInf = new File(appDir, "WEB-INF");
-        addDeleteOnTearDown(appDir);
-        if (!webInf.mkdirs() && !webInf.isDirectory()) {
-            fail("Unable to create directory [" + webInf + "]");
-        }
-
-        File webxml = new File(appDir, "WEB-INF/web.xml");
-        try (FileOutputStream fos = new FileOutputStream(webxml);
-                Writer w = new OutputStreamWriter(fos, "UTF-8")) {
-            w.write("<?xml version='1.0' encoding='UTF-8'?>\n"
-                    + "<web-app xmlns='http://java.sun.com/xml/ns/j2ee' "
-                    + " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"
-                    + " xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee "
-                    + " http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd'"
-                    + " version='2.4'>\n"
-                    + "<error-page>\n<error-code>404</error-code>\n"
-                    + "<location>/404.html</location>\n</error-page>\n"
-                    + "</web-app>\n");
-        }
-
-        File error404 = new File(appDir, "404.html");
-        try (FileOutputStream fos = new FileOutputStream(error404);
-                Writer w = new OutputStreamWriter(fos, "ISO-8859-1")) {
-            w.write("It is 404.html");
-        }
 
         Tomcat tomcat = getTomcatInstance();
-        String contextPath = "/MyApp";
-        tomcat.addWebapp(null, contextPath, appDir.getAbsolutePath());
+
+        File appDir = new File("test/webapp");
+
+        // app dir is relative to server home
+        Context ctxt = tomcat.addContext("", appDir.getAbsolutePath());
+        Wrapper defaultServlet = Tomcat.addServlet(ctxt, "default",
+                DefaultServlet.class.getName());
+        defaultServlet.addInitParameter("fileEncoding", "ISO-8859-1");
+
+        ctxt.addServletMappingDecoded("/", "default");
+        ctxt.addMimeMapping("html", "text/html");
+        ErrorPage ep = new ErrorPage();
+        ep.setErrorCode(404);
+        ep.setLocation("/404.html");
+        ctxt.addErrorPage(ep);
+
         tomcat.start();
 
         TestCustomErrorClient client =

Added: tomcat/trunk/test/webapp/404.html
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/webapp/404.html?rev=1801540&view=auto
==============================================================================
--- tomcat/trunk/test/webapp/404.html (added)
+++ tomcat/trunk/test/webapp/404.html Mon Jul 10 21:29:58 2017
@@ -0,0 +1 @@
+It is 404.html
\ No newline at end of file

Propchange: tomcat/trunk/test/webapp/404.html
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org