[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Aspect perthis clause error
|
Hi,
Yes that is a bug I think - we shouldn't be creating that interface
again (and causing the duplicate class problem).
cheers,
Andy
2009/11/13 Jean-Louis.Pasturel <jean-louis.pasturel@xxxxxxxxx>:
> I try to write a simple abstract LTW aspect with the perthis clause using
> the concrete-aspect mecanism :
>
> My aspect :
>
> /package jlp.aspectsJMX.abstractAspects;
> public abstract aspect AbstractCPUDurationSimpleMethodPerthis
> perthis(methods()) {
> public abstract pointcut methods();
>
> Object around(): methods() {
> System.out.println("Execution around");
> return proceed();
>
> }
>
> }
> /
> my aop.xml file
> /<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
> <aspectj>
> <aspects>
> <concrete-aspect
> extends="jlp.aspectsJMX.abstractAspects.AbstractCPUDurationSimpleMethodPerthis"
>
> name="jlp.aspectsJMX.abstractAspects.AbstractCPUDurationSimpleMethodPerthisImpl">
> <pointcut expression="execution(public *
> SessionExample.doPost(..))" name="methods"/>
> </concrete-aspect>
>
>
> </aspects>
> <!-- Foot Mode Verbose -->
>
> <weaver options="-XnoInline -Xlint:ignore -verbose -showWeaveInfo
> -Xset:weaveJavaPackages=true,weaveJavaxPackages=true,typeDemotion=true">
> <exclude within="iep.perf..*"/>
> <exclude within="jlp.aspectsJMX..*"/>
> <exclude within="org.hibernate.type.ComponentType"/>
> <exclude within="*..*EnhancerByCGLIB*..*"/>
> <exclude within="*..*.*$$EnhancerByCGLIB$$*"/>
> <exclude within="*..*.*$$EnhancerByCGLIB$$*"/>
> <exclude within="*..*.*$$FastClassByCGLIB$$*"/>
> </weaver>
> </aspectj>
> /
> A simple application ( servlets-examples of Tomcat 5.5.28)
> SessionExample.java ( a servlet, i try to weave the doPost method)
>
> I get the exception below :
>
> [AppClassLoader@df6ccd] info AspectJ Weaver* Version DEVELOPMENT built on
> Friday
> Nov 13, 2009 at 00:20:22 GMT*
> [AppClassLoader@df6ccd] info register classloader
> sun.misc.Launcher$AppClassLoad
> er@df6ccd
> [AppClassLoader@df6ccd] info using configuration
> file:/C:/opt/workspaceLP/monProjet/myaspectjweaver.jar!/META-INF/aop.xml
> [AppClassLoader@df6ccd] info define aspect
> jlp.aspectsJMX.abstractAspects.AbstractCPUDurationSimpleMethodPerthisImpl
> [AppClassLoader@df6ccd] warning define generated class failed --
> (LinkageError)
> loader (instance of sun/misc/Launcher$AppClassLoader): *attempted
> duplicate class definition for name:
> "jlp/aspectsJMX/abstractAspects/AbstractCPUDurationSimpleMethodPerthisImpl$ajcMightHaveAspect"*
> loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate
> cla
> ss definition for name:
> "jlp/aspectsJMX/abstractAspects/AbstractCPUDurationSimpl
> eMethodPerthisImpl$ajcMightHaveAspect"
> java.lang.LinkageError: loader (instance of
> sun/misc/Launcher$AppClassLoader):
> attempted duplicate class definition for name:
> "jlp/aspectsJMX/abstractAspects/AbstractCPUDurationSimpleMethodPerthisImpl$ajcMightHaveAspect"
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.defineClass(Cla
> ssLoaderWeavingAdaptor.java:819)
> at
> org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.access$100(Clas
> sLoaderWeavingAdaptor.java:57)
> at
> org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor$SimpleGenerated
> ClassHandler.acceptClass(ClassLoaderWeavingAdaptor.java:128)
> at
> org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider$1.ac
> ceptResult(WeavingAdaptor.java:814)
> at
> org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:154
> 1)
> at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1324)
> at
> org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.
> java:449)
> at
> org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.jav
> a:307)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:96)
> at
> org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(C
> lassPreProcessorAgentAdapter.java:52)
> at
> sun.instrument.TransformerManager.transform(TransformerManager.java:1
> 69)
> at
> sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java
> :365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
> 4)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>
> is it a bug ? a default aspect ( issingleton ) runs correctly.
>
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>