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 2014/08/12 12:17:12 UTC

svn commit: r1617443 - /tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java

Author: markt
Date: Tue Aug 12 10:17:11 2014
New Revision: 1617443

URL: http://svn.apache.org/r1617443
Log:
Restore !included test to correct location
Some other component (e.g. filter) may have already set the vary header so account for that.

Modified:
    tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.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=1617443&r1=1617442&r2=1617443&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Tue Aug 12 10:17:11 2014
@@ -33,6 +33,7 @@ import java.io.StringReader;
 import java.io.StringWriter;
 import java.security.AccessController;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.Locale;
@@ -799,11 +800,22 @@ public class DefaultServlet extends Http
 
         // Serve a gzipped version of the file if present
         boolean usingGzippedVersion = false;
-        if (gzip && resource.isFile() && !path.endsWith(".gz")) {
+        if (gzip && !included && resource.isFile() && !path.endsWith(".gz")) {
             WebResource gzipResource = resources.getResource(path + ".gz");
             if (gzipResource.exists() && gzipResource.isFile()) {
-                response.addHeader("Vary", "accept-encoding");
-                if (!included && checkIfGzip(request)) {
+                Collection<String> varyHeaders = response.getHeaders("Vary");
+                boolean addRequired = true;
+                for (String varyHeader : varyHeaders) {
+                    if ("*".equals(varyHeader) ||
+                            "accept-encoding".equalsIgnoreCase(varyHeader)) {
+                        addRequired = false;
+                        break;
+                    }
+                }
+                if (addRequired) {
+                    response.addHeader("Vary", "accept-encoding");
+                }
+                if (checkIfGzip(request)) {
                     response.addHeader("Content-Encoding", "gzip");
                     resource = gzipResource;
                     usingGzippedVersion = true;



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