Hi, I'm using HttpComponents httpClient 4.5.2 and I'm really struggling with understanding an exception that I recieve from Apache Tomcat. The exception is:

org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error: -104

After hours of debugging and thinking, I start to believe the problem is coming from HttpComponents HttpClient. The reason is that I'm using an ehcache to cache the Http responses, and in turn add the cache in a custom CachingHttpClient. Then I'm writing this response to a HttpServletResponse in my custom servlet, using the entity.writeTo method.

So when I receive a response from the cache, the response is gzipped, and the writeTo method of the GzipCompressingEntity is (I think) is creating the following issue:

Because of this issue: https://issues.apache.org/jira/browse/HTTPCLIENT-1484 the outputStream is being closed by the HttpClient. However, it is the only Entity that does so, if I'm reading the source code correctly.

        wrappedEntity.writeTo(gzip);
        // Only close output stream if the wrapped entity has been
        // successfully written out
        gzip.close();

I beleive this APR ClientAbortException on Tomcat is caused by this premature closing of the outputstream of the HttpservletResponse. It might not be a bug, since it should not matter what Tomcat expects, but I thought I should ask / report anyway. I hope my question / comments make sense, because I'm still investigating the cause of this issue, and I might be completely wrong.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to