You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2005/11/14 18:40:22 UTC

DO NOT REPLY [Bug 37498] New: - NPE in org.apache.catalina.core.ContainerBase.removeChild

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=37498>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=37498

           Summary: NPE in
                    org.apache.catalina.core.ContainerBase.removeChild
           Product: Tomcat 5
           Version: 5.5.12
          Platform: Other
        OS/Version: other
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: darryl@darrylmiles.org


I moved the directory containing my web-app from the webapps / deployment area,
I renamed it outside of the webapps/ tree.  I was expecting it to viciously
undeploy the application so I could then rename it back to cause a deploy.

The application is setup with a context "" for the default context.

The deployed folder name is "../webapps/ROOT"

I think this is reproducable.


At the time I moved the web-app folder I got multiple Exceptions, like the
following:


14-Nov-2005 16:56:56 org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context []
DEBUG 16:56:56,039 (ApplicationLifecycleListener.java:contextDestroyed:70) 
-contextDestroyed on "mywebapp"
14-Nov-2005 16:56:56 org.apache.catalina.loader.WebappClassLoader openJARs
WARNING: Failed to open JAR
java.util.zip.ZipException: No such file or directory
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:203)
        at java.util.jar.JarFile.<init>(JarFile.java:132)
        at java.util.jar.JarFile.<init>(JarFile.java:97)
        at
org.apache.catalina.loader.WebappClassLoader.openJARs(WebappClassLoader.java:1561)
        at
org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:1792)
        at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1587)
        at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:856)
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1305)
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1187)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at
com.imin1way.project.task.ApplicationLifecycleListener.contextDestroyed(ApplicationLifecycleListener.java:72)
        at
org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3733)
        at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4306)
        at
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)
        at
org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1019)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1178)
        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:292)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1304)
        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568)
        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577)
        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557)
        at java.lang.Thread.run(Thread.java:595)



I guess it was trying to open JAR files to load classes from the WEB-INF/lib to
execute the ContextListener.destroyContext() and any unloaded classes is needed
to run.


However the background task is now stuck doing this every 10 seconds:

14-Nov-2005 16:58:36 org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context []
14-Nov-2005 16:58:36
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor processChildren
SEVERE: Exception invoking periodic operation:
java.lang.NullPointerException
        at
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:883)
        at
org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1019)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1178)
        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:292)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1304)
        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568)
        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577)
        at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557)
        at java.lang.Thread.run(Thread.java:595)


I would expect Tomcat to be able to reliabily recover from this sort of abuse :) 

Do bad things happen in TC when an exception is throw from the destroyContext() ?

Let me know if you need more info or maybe even a test case if the cause  /
solution isn't clear enough.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org