Talking about loggers and NullPointerExceptions ... I get the following stacktrace every time an application is re-deployed:
log4j:ERROR LogMananger.repositorySelector was null likely due to error 
in class reloading, using NOPLoggerRepository.
Jul 23, 2008 4:31:47 PM org.apache.catalina.core.StandardContext 
processTlds
SEVERE: Error reading tld listeners java.lang.NullPointerException
java.lang.NullPointerException
  at org.apache.log4j.Category.isEnabledFor(Category.java:749)
at org.apache.commons.logging.impl.Log4JLogger.isTraceEnabled(Log4JLogger.java:333) at org.apache.catalina.startup.TldConfig.tldScanResourcePaths(TldConfig.java:581)
  at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:282)
at org.apache.catalina.core.StandardContext.processTlds(StandardContext.java:4307) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4144) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3025) at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1278) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
  at java.lang.Thread.run(Thread.java:595)

I'm using Tomcat 5.5.25 (inside Eclipse) and the application uses commons-logging + Log4j itself, therefore both jars are loaded from WEB-INF/lib. Can anybody explain what's happening here and who's to blame for this error?
Thanks a lot,
-Felix


Felix Gnass wrote:
Hi,

as far as I know Tomcat's WebappClassloader sets final static references to null upon re-deployments to prevent memory leaks. The following page describes what's happening: http://wiki.apache.org/jakarta-commons/Logging/StaticLog
One possible solution would be not to use static loggers.

Best regards,
-Felix


Fu-Tung Cheng wrote:
Hi,

I sometime hotdeploy my war file to tomcat 6.0.16. I have noticed that a static variable in one of my classes then ends up being null.
The variable is initialized as follows:

private static Logger logger = Logger.getLogger(MyClass.class);

and then used below in a method:

public void mymethod(String mystring) {
  logger.info(mystring + " did something");
} This is a little annoying as I then need to restart the server for this class to work properly. Is this a known bug? I could probably create a little sample war file to demonstrate the issue but I don't want to go through that if you guys already know about the issue.
Thanks,

Fu-Tung


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to