Unnötige decorate()-Aufrufe durch AcceleratorFilter verhindert
[percentcodec] / cachecontrol / src / main / java / de / halbekunst / juplo / cachecontrol / AcceleratorFilter.java
index ffafddc..f9cd886 100644 (file)
@@ -333,6 +333,7 @@ public class AcceleratorFilter implements Filter {
        */
       response.reset();
       pos = 0;
+      size = 0;
       stream = null;
       writer = null;
     }
@@ -649,9 +650,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 +666,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;