X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=cachecontrol%2Fsrc%2Fmain%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FAcceleratorFilter.java;h=63edfb59d536a6ce3bd4e4bb1c7ffd4957ed7e0e;hp=f0037bf1120f4b1f46d865efb51e73eabf5e40d8;hb=3f484068bb529558fbfce8043ed63e8dbf58cb61;hpb=f70f57590e167a21d7bf05aa3d4694ed1286e043 diff --git a/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java b/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java index f0037bf1..63edfb59 100644 --- a/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java +++ b/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java @@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowire; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Configurable; +import org.springframework.beans.factory.annotation.Qualifier; @@ -46,7 +47,7 @@ public class AcceleratorFilter implements Filter { @Autowired CacheControl cacheControl; - @Autowired(required=false) Integer defaultBufferSize = DEFAULT_BUFFER_SIZE; + @Autowired(required=false) @Qualifier("defaultBufferSize") Integer defaultBufferSize = DEFAULT_BUFFER_SIZE; @Autowired String eTag; @Autowired Boolean weak; @Autowired Long lastModified; @@ -61,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); @@ -332,6 +325,7 @@ public class AcceleratorFilter implements Filter { */ response.reset(); pos = 0; + size = 0; stream = null; writer = null; } @@ -648,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, this); + /** Dekoration nur beim ersten Schreib-Schub anstoßen */ + if (pos == size) + cacheControl.decorate(request, response); + pos = 0; } buffer[pos++] = (byte) i; size++; @@ -662,7 +658,9 @@ public class AcceleratorFilter implements Filter { return; committed = true; - cacheControl.decorate(request, response, this); + /** Dekoration nur beim ersten Schreib-Schub anstoßen */ + if (pos == size) + cacheControl.decorate(request, response); out().write(buffer, 0, pos); out().flush(); pos = 0; @@ -673,7 +671,7 @@ public class AcceleratorFilter implements Filter { if (size == 0) { committed = true; zipped = false; - cacheControl.decorate(request, response, this); + cacheControl.decorate(request, response); sos.close(); } else {