Überflüssige Include-Überprüfung entfernt
[percentcodec] / cachecontrol / src / main / java / de / halbekunst / juplo / cachecontrol / AcceleratorFilter.java
index ffafddc..63edfb5 100644 (file)
@@ -62,14 +62,6 @@ public class AcceleratorFilter implements Filter {
       return;
     }
 
-    // TODO: Das macht so wahrscheinlich keinen Sinn...
-    /** Prüfen, ob es sich um eine Anfrage für einen JSP-Include handelt */
-    if (request.getAttribute(REQUEST_URI_ATTRIBUTE) != null) {
-      log.debug("Includes cannot be accelerated");
-      chain.doFilter(request, response);
-      return;
-    }
-
     HttpServletRequest httpRequest = (HttpServletRequest)request;
     HttpServletResponse httpResponse = (HttpServletResponse)response;
     AccelerationWrapper wrapper = new AccelerationWrapper(httpRequest, httpResponse);
@@ -333,6 +325,7 @@ public class AcceleratorFilter implements Filter {
        */
       response.reset();
       pos = 0;
+      size = 0;
       stream = null;
       writer = null;
     }
@@ -649,9 +642,11 @@ public class AcceleratorFilter implements Filter {
       public void write(int i) throws IOException {
         if (pos == bufferSize) {
           out().write(buffer);
-          pos = 0;
           committed = true;
-          cacheControl.decorate(request, response);
+          /** Dekoration nur beim ersten Schreib-Schub anstoßen */
+          if (pos == size)
+            cacheControl.decorate(request, response);
+          pos = 0;
         }
         buffer[pos++] = (byte) i;
         size++;
@@ -663,7 +658,9 @@ public class AcceleratorFilter implements Filter {
           return;
 
         committed = true;
-        cacheControl.decorate(request, response);
+        /** Dekoration nur beim ersten Schreib-Schub anstoßen */
+        if (pos == size)
+          cacheControl.decorate(request, response);
         out().write(buffer, 0, pos);
         out().flush();
         pos = 0;