|Summary:||WarURLConnection always returns -1 from getContentLength() and getContentLengthLong() which causes a 416 when request includes a Range header|
|Product:||Tomcat 8||Reporter:||Douglas Paul <3wvzs2636b>|
|Component:||Catalina||Assignee:||Tomcat Developers Mailing List <dev>|
Description Douglas Paul 2018-09-07 01:45:37 UTC
WarURLConnection doesn't override the default implementations of getContentLength() and getContentLengthLong(), so it always returns -1. In the context of a Spring Boot application, this has the effect of causing requests that have a Range header to return a 416 Range Not Satisfiable. I originally reported this bug against Spring Boot (https://github.com/spring-projects/spring-boot/issues/14306) but the developers there suggested I report it here. Specifically, Andy Wilkinson suggested that WarUrlConnection should override getContentLength() and getContentLengthLong() to delegate them to wrappedJarUrlConnection as is done for getLastModified(). (See bug 61125.)
Comment 1 Remy Maucherat 2018-09-11 09:24:17 UTC
Ok, this is reasonable. The fix will be in 9.0.13 and 8.5.35.
Comment 2 Douglas Paul 2018-09-12 00:34:55 UTC