Partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=48644
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 27 Sep 2010 21:32:25 +0000 (21:32 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Mon, 27 Sep 2010 21:32:25 +0000 (21:32 +0000)
Some Throwables must always be re-thrown

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

java/org/apache/catalina/deploy/ErrorPage.java
java/org/apache/catalina/ha/authenticator/ClusterSingleSignOn.java
java/org/apache/catalina/ha/session/DeltaManager.java
java/org/apache/catalina/loader/WebappClassLoader.java
java/org/apache/catalina/loader/WebappLoader.java
java/org/apache/catalina/manager/HTMLManagerServlet.java
java/org/apache/catalina/manager/JMXProxyServlet.java
java/org/apache/catalina/manager/ManagerServlet.java
java/org/apache/catalina/manager/host/HostManagerServlet.java

index db4943f..1db40fb 100644 (file)
@@ -92,7 +92,7 @@ public class ErrorPage implements Serializable {
 
         try {
             this.errorCode = Integer.parseInt(errorCode);
-        } catch (Throwable t) {
+        } catch (NumberFormatException nfe) {
             this.errorCode = 0;
         }
 
index dd9d715..cb70eb4 100644 (file)
@@ -32,6 +32,7 @@ import org.apache.catalina.authenticator.SingleSignOn;
 import org.apache.catalina.ha.CatalinaCluster;
 import org.apache.catalina.ha.ClusterManager;
 import org.apache.catalina.util.LifecycleBase;
+import org.apache.jasper.util.ExceptionUtils;
 
 
 
@@ -149,6 +150,7 @@ public class ClusterSingleSignOn
                         "There is no Cluster for ClusterSingleSignOn");
             }
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             throw new LifecycleException(
                     "ClusterSingleSignOn exception during clusterLoad " + t);
         }
index 1388efd..820594e 100644 (file)
@@ -787,6 +787,7 @@ public class DeltaManager extends ClusterManagerBase{
             getAllClusterSessions();
 
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error(sm.getString("deltaManager.managerLoad"), t);
         }
         
index 5147618..46c88a6 100644 (file)
@@ -70,6 +70,7 @@ import org.apache.catalina.LifecycleException;
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.LifecycleState;
 import org.apache.jasper.servlet.JasperLoader;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.naming.JndiPermission;
 import org.apache.naming.resources.ProxyDirContext;
 import org.apache.naming.resources.Resource;
@@ -2105,6 +2106,7 @@ public class WebappClassLoader
                                     }
                                 }
                             } catch (Throwable t) {
+                                ExceptionUtils.handleThrowable(t);
                                 if (log.isDebugEnabled()) {
                                     log.debug("Could not set field " + field.getName() 
                                             + " to null in class " + clazz.getName(), t);
@@ -2113,6 +2115,7 @@ public class WebappClassLoader
                         }
                     }
                 } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
                     if (log.isDebugEnabled()) {
                         log.debug("Could not clean fields for class " + clazz.getName(), t);
                     }
@@ -2162,6 +2165,7 @@ public class WebappClassLoader
                     }
                 }
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 if (log.isDebugEnabled()) {
                     log.debug("Could not set field " + field.getName() 
                             + " to null in object instance of class " 
@@ -3273,7 +3277,7 @@ public class WebappClassLoader
                 } else {
                     clazz = Class.forName(triggers[i]);
                 }
-            } catch (Throwable t) {
+            } catch (Exception e) {
                 clazz = null;
             }
             if (clazz == null)
index 1fcd354..d8ed5a6 100644 (file)
@@ -55,6 +55,7 @@ import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.mbeans.MBeanUtils;
 import org.apache.catalina.util.LifecycleBase;
 import org.apache.catalina.util.LifecycleMBeanBase;
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.naming.resources.DirContextURLStreamHandler;
 import org.apache.naming.resources.DirContextURLStreamHandlerFactory;
 import org.apache.naming.resources.Resource;
@@ -568,6 +569,7 @@ public class WebappLoader extends LifecycleMBeanBase
                 // Log and continue anyway, this is not critical
                 log.error("Error registering jndi stream handler", e);
             } catch (Throwable t) {
+                ExceptionUtils.handleThrowable(t);
                 // This is likely a dual registration
                 log.info("Dual registration of jndi stream handler: " 
                          + t.getMessage());
@@ -622,6 +624,7 @@ public class WebappLoader extends LifecycleMBeanBase
                 .registerComponent(classLoader, cloname, null);
 
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log.error( "LifecycleException ", t );
             throw new LifecycleException("start: ", t);
         }
@@ -666,8 +669,8 @@ public class WebappLoader extends LifecycleMBeanBase
                 (MBeanUtils.getDomain(ctx) + ":type=WebappClassLoader,path="
                  + path + ",host=" + ctx.getParent().getName());
             Registry.getRegistry(null, null).unregisterComponent(cloname);
-        } catch (Throwable t) {
-            log.error( "LifecycleException ", t );
+        } catch (Exception e) {
+            log.error("LifecycleException ", e);
         }
 
         classLoader = null;
index 67055b2..1cec2d4 100644 (file)
@@ -54,7 +54,6 @@ import org.apache.catalina.manager.util.SessionUtils;
 import org.apache.catalina.util.RequestUtil;
 import org.apache.catalina.util.ServerInfo;
 import org.apache.catalina.util.URLEncoder;
-import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.http.fileupload.ParameterParser;
 
 /**
@@ -786,13 +785,8 @@ public final class HTMLManagerServlet extends ManagerServlet {
         
         // Set our properties from the initialization parameters
         String value = null;
-        try {
-            value = getServletConfig().getInitParameter("showProxySessions");
-            showProxySessions = Boolean.parseBoolean(value);
-        } catch (Throwable t) {
-            ExceptionUtils.handleThrowable(t);
-        }
-
+        value = getServletConfig().getInitParameter("showProxySessions");
+        showProxySessions = Boolean.parseBoolean(value);
     }   
 
     // ------------------------------------------------ Sessions administration
index ae0787b..f041e66 100644 (file)
@@ -35,6 +35,7 @@ import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.jasper.util.ExceptionUtils;
 import org.apache.tomcat.util.modeler.Registry;
 
 /**
@@ -207,6 +208,7 @@ public class JMXProxyServlet extends HttpServlet  {
                                         sb.append(escape(item.toString()));
                                     }
                                     catch (Throwable t) {
+                                        ExceptionUtils.handleThrowable(t);
                                         sb.append("NON-STRINGABLE VALUE");
                                     }
                                 }
@@ -222,7 +224,7 @@ public class JMXProxyServlet extends HttpServlet  {
                         writer.println( attName + ": " + valueString);
                     }
                     catch (Throwable t) {
-                        // Ignore
+                        ExceptionUtils.handleThrowable(t);
                     }
                 }
             } catch (Exception e) {
index 577272b..327967c 100644 (file)
@@ -834,6 +834,7 @@ public class ManagerServlet
                 writer.println(sm.getString("managerServlet.deployFailed", displayPath));
             }
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log("ManagerServlet.install[" + displayPath + "]", t);
             writer.println(sm.getString("managerServlet.exception",
                     t.toString()));
@@ -917,6 +918,7 @@ public class ManagerServlet
             writer.println
                 (sm.getString("managerServlet.reloaded", displayPath));
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log("ManagerServlet.reload[" + displayPath + "]", t);
             writer.println(sm.getString("managerServlet.exception",
                                         t.toString()));
@@ -961,6 +963,7 @@ public class ManagerServlet
                 clazz = Class.forName(type);
             }
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log("ManagerServlet.resources[" + type + "]", t);
             writer.println(sm.getString("managerServlet.exception",
                                         t.toString()));
@@ -1000,6 +1003,7 @@ public class ManagerServlet
                 }
             }
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log("ManagerServlet.resources[" + type + "]", t);
             writer.println(sm.getString("managerServlet.exception",
                                         t.toString()));
@@ -1081,6 +1085,7 @@ public class ManagerServlet
             props.append(System.getProperty("java.vm.vendor"));
             writer.println(props.toString());
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             getServletContext().log("ManagerServlet.serverinfo",t);
             writer.println(sm.getString("managerServlet.exception",
                                         t.toString()));
@@ -1178,6 +1183,7 @@ public class ManagerServlet
                 writer.println(sm.getString("managerServlet.sessiontimeout.expired",
                                             "" + idle,"" + expired));
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log("ManagerServlet.sessions[" + displayPath + "]", t);
             writer.println(sm.getString("managerServlet.exception",
                                         t.toString()));
@@ -1254,6 +1260,7 @@ public class ManagerServlet
                 writer.println
                     (sm.getString("managerServlet.startFailed", displayPath));
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             getServletContext().log
                 (sm.getString("managerServlet.startFailed", displayPath), t);
             writer.println
@@ -1300,6 +1307,7 @@ public class ManagerServlet
             context.stop();
             writer.println(sm.getString("managerServlet.stopped", displayPath));
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log("ManagerServlet.stop[" + displayPath + "]", t);
             writer.println(sm.getString("managerServlet.exception",
                                         t.toString()));
@@ -1375,6 +1383,7 @@ public class ManagerServlet
             writer.println(sm.getString("managerServlet.undeployed",
                                         displayPath));
         } catch (Throwable t) {
+            ExceptionUtils.handleThrowable(t);
             log("ManagerServlet.undeploy[" + displayPath + "]", t);
             writer.println(sm.getString("managerServlet.exception",
                                         t.toString()));
index 0fbf75f..1201a40 100644 (file)
@@ -597,13 +597,13 @@ public class HostManagerServlet
             host.start();
             writer.println
                 (sm.getString("hostManagerServlet.started", name));
-        } catch (Throwable t) {
+        } catch (Exception e) {
             getServletContext().log
-                (sm.getString("hostManagerServlet.startFailed", name), t);
+                (sm.getString("hostManagerServlet.startFailed", name), e);
             writer.println
                 (sm.getString("hostManagerServlet.startFailed", name));
             writer.println(sm.getString("hostManagerServlet.exception",
-                                        t.toString()));
+                                        e.toString()));
             return;
         }
         
@@ -656,13 +656,13 @@ public class HostManagerServlet
             host.stop();
             writer.println
                 (sm.getString("hostManagerServlet.stopped", name));
-        } catch (Throwable t) {
+        } catch (Exception e) {
             getServletContext().log
-                (sm.getString("hostManagerServlet.stopFailed", name), t);
+                (sm.getString("hostManagerServlet.stopFailed", name), e);
             writer.println
                 (sm.getString("hostManagerServlet.stopFailed", name));
             writer.println(sm.getString("hostManagerServlet.exception",
-                                        t.toString()));
+                                        e.toString()));
             return;
         }