Hello, I experienced a strange behaviour of tomcat a few minutes ago. Container is configured to do webapp auto reloading when classes changes. I updated a few WEB-INF/classes/*.properties. Tomcat decided it's time to reload the webapp because classes did change. However, it killed it's own webapp loader Thread using a ThreadDeath. As a result, the webapp is not accessible anymore. I suppose it's a bug from the webapp reloader, but before submission to bug tracker, i'd appreciate comments.
The result of this problem is 1) webapp does not exist anymore (404 while trying to access it) 2) webapp is marqued in manager as not started, but trying to start it result in an 'already started' error 3) you must either restart tomcat, either undeploy/redploy the webapp to get it back working Error log: <here, the webapp directory has been altered, webapp need to reload> 760 INFO org.apache.catalina.loader.WebappClassLoader - Illegal access: this web application instance has been stopped already. Could not load org.apache.log4j.spi.ThrowableInformation. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. org.apache.catalina.core.ContainerBase - Exception invoking periodic operation: java.lang.ThreadDeath at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1221) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:145) at org.apache.log4j.Category.forcedLog(Category.java:379) at org.apache.log4j.Category.log(Category.java:844) at org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:193) at org.apache.catalina.core.ApplicationContext.log(ApplicationContext.java:662) at org.apache.catalina.core.ApplicationContextFacade.log(ApplicationContextFacade.java:273) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:900) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3823) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4087) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:2920) at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:403) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1273) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1561) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1550) at java.lang.Thread.run(Thread.java:534) <here, tomcat does nothing more for loading the class> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]