See also bug 48644. I see "catch (Throwable ..." occurring 311 times in the Tomcat source: mikevdg@xxx:~/src/apache-tomcat-7.0.26-src $ grep -r "catch.*(.*Throwable" * | wc -l 311 Please at the very least, change these to "catch (Exception ...". Otherwise you end up catching OutOfMemoryErrors. IMHO, and I haven't grepped the mailing list for any controversy surrounding this, when Tomcat (or anything!!!) receives an OOME, it should exit to the OS to be restarted by whatever script or mechanism is managing it. You cannot recover from an OOME, and I have to resort to SIGKILL to stop the JVM.
Most catch clauses seem to use "ExceptionUtils.handleThrowable(t)", which rethrows the Throwable if it is important. Grumble mumble, nasty way to handle errors, but it does resolve this issue.
As you correctly noted, this has been fixed a while ago. I am marking it as duplicate. *** This bug has been marked as a duplicate of bug 48644 ***