From 0c32d66cbdcab41fd36d80c4bdf2d22aff86d751 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 19 Aug 2014 20:17:42 +0200 Subject: [PATCH] ShallowEtagHeaderFilter supports Servlet 3.1's setContentLengthLong as well Issue: SPR-12097 --- .../web/filter/ShallowEtagHeaderFilter.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java b/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java index 9e8c4b067b..0043f85fe9 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java @@ -46,6 +46,7 @@ import org.springframework.web.util.WebUtils; * * @author Arjen Poutsma * @author Rossen Stoyanchev + * @author Juergen Hoeller * @since 3.0 */ public class ShallowEtagHeaderFilter extends OncePerRequestFilter { @@ -246,6 +247,17 @@ public class ShallowEtagHeaderFilter extends OncePerRequestFilter { } } + // Overrides Servlet 3.1 setContentLengthLong(long) at runtime + public void setContentLengthLong(long len) { + if (len > Integer.MAX_VALUE) { + throw new IllegalArgumentException("Content-Length exceeds ShallowEtagHeaderFilter's maximum (" + + Integer.MAX_VALUE + "): " + len); + } + if (len > this.content.capacity()) { + this.content.resize((int) len); + } + } + @Override public void setBufferSize(int size) { if (size > this.content.capacity()) {