When making a request with "If-Range" using the "ETag" provided by the server (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) for a static resource the response should include the partial content of the specified "Range" or the full content of the static resource being requesting. However, it doesn't appear that the full content is being returned when requesting a static resource that has changed.
I'm trying to create a simple class to manage downloads which must be able to resume downloads. Getting a download to resume works well enough, but when I interrupt my download, touch the file being downloaded from the server, and then restart the download I get the issue mentioned above. The response code is correct "200", but the "Content-Length" returned is zero. I'm using the "Sun Java System Application Server Platform Edition 9.0_01" as my server.
I've also looked into the source code, and the only place I could find source code handling the "If-Range" header was in org.apache.catalina.servlets.DefaultServlet. I think this is a potential issue but perhaps I misunderstand how the caching mechanism is supposed to work.
Is this in the right place to pursue this issue or should I send this to a mailing list (and which one is most appropriate)?