if the log4j.xml configuration file contains a custom appender for which the class cannot be located, then a ClassNotFoundException is thrown which is followed by a NullPointerException. The appender at line 171 in file: DOMConfigurator.java function : findAppenderByName(Document doc, String appenderName) Here are the two stack traces: log4j:ERROR Could not create an Appender. Reported error follows. java.lang.ClassNotFoundException: com.dvclabs.logging.client.log4jappender.LoggingInfrastructureAppender at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.apache.log4j.helpers.Loader.loadClass(Loader.java:179) at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:237) at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:171) at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:184) at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:502) at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:471) at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:921) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:790) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:682) at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:811) log4j:ERROR Could not parse file [metadata/log4j.xml]. java.lang.NullPointerException at java.util.Hashtable.put(Unknown Source) at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:172) at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:184) at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:502) at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:471) at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:921) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:790) at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:682) at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:811)
Committed rev 685308 in trunk, 685312 for extras.