The code below doesn't make sense: <snip> catch (IOException e){ log ("Caught exception " + e); throw new IOException (e.toString()); } </snip> It should be "throw e;". IMHO, It seems no need to log this exception here, so the cache block can be removed.
Created attachment 18925 [details] Proposed patch against /tomcat/container/tc5.5.x
> IMHO, It seems no need to log this exception here, so > the cache block can be removed. Ooops, s/cache/catch/ :-P
Many thanks for the report and patch. This has been fixed in SVN and will be in 5.5.21 onwards.