Thank you, Andy! That did it. Nice and easy! -AR
Date: Sun, 11 Oct 2009 20:56:18 -0700 > From: Andy Clement <[email protected]> > Subject: Re: [aspectj-users] NPE when shutting down tomcat that runs > Spring webapp using LoadTimeWeaver > To: [email protected] > Message-ID: > <[email protected]> > Content-Type: text/plain; charset=ISO-885 > I believe you are hitting > https://bugs.eclipse.org/bugs/show_bug.cgi?id=231945. > > The problem is a (configurable) behaviour in tomcat is nulling static > data on shutdown, and during shutdown it then turns out another class > needs to be woven. The weaver was using a bit of static information > but it got splatted by tomcat - and so it NPEs. As discussed in the > bug report: > > > I'm not sure why I didn't notice this before, > > but WebappClassLoader.clearReferences() is configurable. I just added > the > > following to my VM arguments when launching Tomcat: > > > > > -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false > > Andy > > 2009/10/11 Andrey Radchenko <[email protected]>: > > Hi All, > > > > I am getting NPE when I am stopping tomcat (6.0.14) that runs my Spring > web > > application that uses loadTimeWeaver object to add aspects to JPA > classes. > > I am getting few such NPE's. > > > > Have anybody seen it before? > > > > Here is one of such stack traces that I get: > > > >> Oct 11, 2009 2:32:23 PM org.aspectj.weaver.tools.Jdk14Trace error > >> SEVERE: > >> > org/apache/commons/httpclient/MultiThreadedHttpConnectionManager$ReferenceQueueThread > >> java.lang.NullPointerException > >> at > >> > org.aspectj.bridge.context.CompilationAndWeavingContext.getContextStack(CompilationAndWeavingContext.java:185) > >> at > >> > org.aspectj.bridge.context.CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.java:154) > >> at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1112) > >> at > >> > org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:423) > >> at > >> > org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:286) > >> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:95) > >> at > >> > org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52) > >> at > >> > org.springframework.context.weaving.AspectJWeavingEnabler$AspectJClassBypassingClassFileTransformer.transform(AspectJWeavingEnabler.java:92) > >> at > >> > org.springframework.instrument.classloading.WeavingTransformer.transformIfNecessary(WeavingTransformer.java:95) > >> at > >> > org.springframework.instrument.classloading.WeavingTransformer.transformIfNecessary(WeavingTransformer.java:78) > >> at > >> > org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader.findResourceInternal(TomcatInstrumentableClassLoader.java:114) > >> at > >> > org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1757) > >> at > >> > org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872) > >> at > >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325) > >> at > >> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) > >> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:402) > >> at java.lang.Class.getDeclaredFields0(Native Method) > >> at java.lang.Class.privateGetDeclaredFields(Class.java:2291) > >> at java.lang.Class.getDeclaredFields(Class.java:1743) > >> at > >> > org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1598) > >> at > >> > org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1495) > >> at > org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:707) > >> at > >> org.apache.catalina.core.StandardContext.stop(StandardContext.java:4537) > >> at > >> > org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:924) > >> at > >> > org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1180) > >> at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1151) > >> at > >> > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313) > >> at > >> > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) > >> at > >> org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1086) > >> at > >> org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098) > >> at > >> org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448) > >> at > >> org.apache.catalina.core.StandardService.stop(StandardService.java:584) > >> at > >> org.apache.catalina.core.StandardServer.stop(StandardServer.java:744) > >> at org.apache.catalina.startup.Catalina.stop(Catalina.java:616) > >> at org.apache.catalina.startup.Catalina.start(Catalina.java:591) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > >> at > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > >> at java.lang.reflect.Method.invoke(Method.java:597) > >> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) > >> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) > > > > Please help. Thank you in advance! > > -AR > > > > > > _______________________________________________ > > aspectj-users mailing list > > [email protected] > > https://dev.eclipse.org/mailman/listinfo/aspectj-users > > > > >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
