Index: /home/dev/workspace/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java =================================================================== --- /home/dev/workspace/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java (revision 412449) +++ /home/dev/workspace/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java (working copy) @@ -1613,8 +1613,20 @@ if (useCompression) { outputBuffer.addActiveFilter(outputFilters[Constants.GZIP_FILTER]); headers.setValue("Content-Encoding").setString("gzip"); - // Make Proxies happy via Vary (from mod_deflate) - headers.setValue("Vary").setString("Accept-Encoding"); + + // Either add a "Vary: Accept-Encoding" header or add Accept-Encoding to + // the existing header. + String varyHeaderValue = ""; + MessageBytes varyHeaderValueBytes = headers.getValue("Vary"); + if (varyHeaderValueBytes!=null && varyHeaderValueBytes.getString()!=null) { + varyHeaderValue = varyHeaderValueBytes.getString(); + } + if ("".equals(varyHeaderValue)) { + varyHeaderValue="Accept-Encoding"; + } else { + varyHeaderValue=varyHeaderValue+","+"Accept-Encoding"; + } + headers.setValue("Vary").setString(varyHeaderValue); } // Add date header