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]

Reply via email to