Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Aspect perthis clause error

Thanks Andy,
i will raise it in bugzilla

Andy Clement a écrit :

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

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users
---------------------------------------------------------------------------------------
Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. Aucun virus connu a ce jour par nos services n'a ete detecte.








Back to the top