So,

I'd like to recommend my fix be merged. It seems to have done the trick.

After three days of running, FilterInputStream.skip() returned zero only 
once, and my fix prevented a thrashing loop.

I also have some more insight into what may cause this. This particular 
application is running on the internet, and at the root URL for the 
domain. This means that various internet robots hit it occasionally, 
looking for robots.txt or just spidering along. It seems to me that not 
all robots play nice and safe with HTTP, possibly for good reasons, and 
may cut the connection prematurely. The event happens shortly after one 
of these robots hits. It also can be that it's a combination of their 
behavior, and specific implementations of the JVM on specific platforms. 
Or, it could be a deep java.nio bug, possibly fixed in Java 7's new nio.

In any case -- this fix will make these sorrows go away. :)

Note that if the crazy event happens, you will see the exception "Cannot 
skip ahead in FilterInputStream" in yours logs (it is caught and logged 
by UniformResource).

I'm very, very happy to have this resolved! I've been pulling my hair 
out over this for months.

-Tal

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2384598

Reply via email to