|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
Aspect perthis clause errorI 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@... https://dev.eclipse.org/mailman/listinfo/aspectj-users |
|
|
Re: Aspect perthis clause errorHi,
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@...>: > 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@... > https://dev.eclipse.org/mailman/listinfo/aspectj-users > aspectj-users mailing list aspectj-users@... https://dev.eclipse.org/mailman/listinfo/aspectj-users |
|
|
Re: Aspect perthis clause errorThanks 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@...>: > > >>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@... >>https://dev.eclipse.org/mailman/listinfo/aspectj-users >> >> >> >_______________________________________________ >aspectj-users mailing list >aspectj-users@... >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. > > > > > _______________________________________________ aspectj-users mailing list aspectj-users@... https://dev.eclipse.org/mailman/listinfo/aspectj-users |
| Free embeddable forum powered by Nabble | Forum Help |