Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] NPE when shutting down tomcat that runs Spring webapp using LoadTimeWeaver

Hi Andy,

I was just looking up the AJDT version we use in eclipse 3.2.

These are:
org.eclipse.ajdt_1.4.2.200705221209
with
 org.aspectj.weaver_1.5.4.200705211336
 org.aspectj.ajde_1.5.4.200705211336

I wonder where I got that from because looking at http://eclipse.org/ajdt/downloads/archive.php and http://www.eclipse.org/ajdt/downloads/ does not unveil that version.

Strange...


For PDE build we currently still use eclipse 3.3 with:

org.eclipse.ajdt_1.5.1.200801111942
with
 org.aspectj.weaver_1.5.4.20080111211120
 org.aspectj.ajde_1.5.4.20080111211120

The download page shows 1.5.3.200807141310 as being the current one for 3.3.





-----Original Message-----
From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Andy Clement
Sent: Montag, 12. Oktober 2009 05:56
To: aspectj-users@xxxxxxxxxxx
Subject: Re: [aspectj-users] NPE when shutting down tomcat that runs Spring webapp using LoadTimeWeaver

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 <andrey.radchenko@xxxxxxxxx>:
> 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
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


Back to the top