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.)
Ok, this is reasonable. The fix will be in 9.0.13 and 8.5.35.
Excellent, thanks!