From c13b1b9003e95965576bbcca2a19ad1312c27e2f Mon Sep 17 00:00:00 2001 From: markt Date: Wed, 15 Dec 2010 17:58:05 +0000 Subject: [PATCH] https://issues.apache.org/bugzilla/show_bug.cgi?id=10972 Improve error message if the className attribute is missing on an element in server.xml where it is required. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1049654 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/startup/Catalina.java | 8 ++++++-- java/org/apache/tomcat/util/digester/Digester.java | 2 +- java/org/apache/tomcat/util/digester/ObjectCreateRule.java | 6 +++++- webapps/docs/changelog.xml | 4 ++++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/java/org/apache/catalina/startup/Catalina.java b/java/org/apache/catalina/startup/Catalina.java index 57da06d44..035999907 100644 --- a/java/org/apache/catalina/startup/Catalina.java +++ b/java/org/apache/catalina/startup/Catalina.java @@ -45,6 +45,7 @@ import org.apache.tomcat.util.log.SystemLogHandler; import org.apache.tomcat.util.res.StringManager; import org.xml.sax.Attributes; import org.xml.sax.InputSource; +import org.xml.sax.SAXParseException; /** @@ -532,9 +533,12 @@ public class Catalina { digester.push(this); digester.parse(inputSource); inputStream.close(); + } catch (SAXParseException spe) { + log.warn("Catalina.start using " + getConfigFile() + ": " + + spe.getMessage()); + return; } catch (Exception e) { - log.warn("Catalina.start using " - + getConfigFile() + ": " , e); + log.warn("Catalina.start using " + getConfigFile() + ": " , e); return; } diff --git a/java/org/apache/tomcat/util/digester/Digester.java b/java/org/apache/tomcat/util/digester/Digester.java index 1a8886f43..25e52ab60 100644 --- a/java/org/apache/tomcat/util/digester/Digester.java +++ b/java/org/apache/tomcat/util/digester/Digester.java @@ -2682,7 +2682,7 @@ public class Digester extends DefaultHandler { } if (locator != null) { String error = "Error at (" + locator.getLineNumber() + ", " + - locator.getColumnNumber() + ": " + message; + locator.getColumnNumber() + ") : " + message; if (e != null) { return new SAXParseException(error, locator, e); } else { diff --git a/java/org/apache/tomcat/util/digester/ObjectCreateRule.java b/java/org/apache/tomcat/util/digester/ObjectCreateRule.java index 834520b60..b6b948cb1 100644 --- a/java/org/apache/tomcat/util/digester/ObjectCreateRule.java +++ b/java/org/apache/tomcat/util/digester/ObjectCreateRule.java @@ -136,11 +136,15 @@ public class ObjectCreateRule extends Rule { "}New " + realClassName); } + if (realClassName == null) { + throw new NullPointerException("No class name specified for " + + namespace + " " + name); + } + // Instantiate the new object and push it on the context stack Class clazz = digester.getClassLoader().loadClass(realClassName); Object instance = clazz.newInstance(); digester.push(instance); - } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 4d7218f66..948b33ac6 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -54,6 +54,10 @@ performance benefits. (markt) + 10972: Improve error message if the className attribute is + missing on an element in server.xml where it is required. (markt) + + 48692: Provide option to parse application/x-www-form-urlencoded PUT requests. (schultz) -- 2.11.0