Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55524
Refactor to avoid a deadlock. Move the exception handling that may execute user code outside of the sync block.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk@1520281 13f79535-47bb-0310-9956-ffa450edef68