[
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.