Fehler im Zusammenhang mit dem Komprimieren gepufferter Antworten korrigiert
[percentcodec] / cachecontrol / src / main / java / de / halbekunst / juplo / cachecontrol / AcceleratorFilter.java
index f76c713..992d9dc 100644 (file)
@@ -1,6 +1,5 @@
 package de.halbekunst.juplo.cachecontrol;
 
-import de.halbekunst.juplo.cachecontrol.CacheControl.CacheMethodHandle;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.PrintWriter;
@@ -38,18 +37,11 @@ import org.springframework.beans.factory.annotation.Configurable;
 public class AcceleratorFilter implements Filter {
   private final static Logger log = LoggerFactory.getLogger(AcceleratorFilter.class);
 
-  private final static Map<String,String> ADDITIONAL_HEADERS_NONE = Collections.unmodifiableMap(new HashMap<String,String>());
-  private final static Map<String,String> ADDITIONAL_HEADERS_GZIP;
+  private final static Map<String,String> EMPTY = Collections.unmodifiableMap(new HashMap<String,String>());
 
   public final static String REQUEST_URI_ATTRIBUTE = "javax.servlet.include.request_uri";
   public final static String RESPONSE_WRAPPER = AcceleratorFilter.class.getName() + ".RESPONSE_WRAPPER";
 
-  static {
-    Map<String,String> map = new HashMap<String,String>(1);
-    map.put(Headers.HEADER_CONTENT_ENCODING, "gzip");
-    ADDITIONAL_HEADERS_GZIP = Collections.unmodifiableMap(map);
-  }
-
 
   @Autowired CacheControl cacheControl;
   @Autowired(required=true) Integer buffer;
@@ -99,7 +91,8 @@ public class AcceleratorFilter implements Filter {
     private final HttpServletRequest request;
     private final HttpServletResponse response;
 
-    private boolean zipped;
+    boolean zipped; // CacheControll greift direkt auf dieses Flag zu!
+
     private int buffer;
     private GZIPServletOutputStream out;
     private ServletOutputStream stream;
@@ -358,6 +351,11 @@ public class AcceleratorFilter implements Filter {
 
 
 
+    @Override
+    public boolean isZipped() {
+      return zipped && out != null && !out.empty;
+    }
+
     @Override
     public long getTimestamp() {
       return now;
@@ -395,13 +393,10 @@ public class AcceleratorFilter implements Filter {
 
     @Override
     public Map<String,String> getAdditionalHeaders(HttpServletRequest request) {
-      if (zipped && !out.empty)
-        return ADDITIONAL_HEADERS_GZIP;
-      else
-        return ADDITIONAL_HEADERS_NONE;
+      return EMPTY;
     }
 
-    public void guessingFinished() {
+    public void supressGuessing() {
       guessing = false;
     }