Summary: | ClientAbortException / IOException occurs only when using HttpServletResponseWrapper | ||
---|---|---|---|
Product: | Tomcat 6 | Reporter: | Olivier Jaquemet <olivier.jaquemet> |
Component: | Catalina | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | CLOSED INVALID | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | 6.0.45 | ||
Target Milestone: | default | ||
Hardware: | PC | ||
OS: | All | ||
URL: | http://mail-archives.apache.org/mod_mbox/tomcat-users/201608.mbox/%3C6be06ed8-64da-4f3d-4204-0e89b40617de%40jalios.com%3E | ||
Attachments: |
Test webapp compile with JDK 1.6 for Tomcat 6
Test webapp compilee with JDK 1.8 for Tomcat 7+ |
Description
Olivier Jaquemet
2016-09-01 08:58:13 UTC
Created attachment 34190 [details]
Test webapp compilee with JDK 1.8 for Tomcat 7+
I've looked at a WireShark trace with and without the wrapper. There is no Tomcat bug here. The client drops the connection for no obvious reason on multiple occasions without and without the wrapper. It just so happens that with the wrapper the timing is such that the Exception gets caught by the Filter. I'll add that the client makes multiple requests for the same parts of the avi file. Ignoring the requests it makes and then aborts, it still ends up downloading over 500K of data. Thank you Mark for this analysis. I am completely ok to accept that IE behaves like sh%t, this would not be the first time. However, how do you explain the fact that without using the HttpServletResponseWrapper the exception does not occur ? It really seems to me that there is a change in Tomcat behavior somewhere, otherwise exception would occur everytime, don't you think ? (In reply to Olivier Jaquemet from comment #3) > It really seems to me that there is a change in Tomcat behavior somewhere, > otherwise exception would occur everytime, don't you think ? There is a change. I dug into it a little more. With the wrapper, the Default Servlet writes the content and you see the exception when the client aborts the connection. Without the wrapper, Tomcat uses sendFile so the write is handled by a separate thread so the app never sees the exception. This is all entirely as expected. OKay, everything is now much clearer to me. Thank you Mark for the taking the time to analyze this issue. |