Fix is in AspectJ - I will put this fix into 1.6.3 final release as it is quite a nasty bug, but it is an entirely self contained fix so I don't believe it needs a new release candidate.
cheers, Andy. 2008/12/18 Andy Clement <[email protected]> > Hi Jouni, > > I just raised this as https://bugs.eclipse.org/bugs/show_bug.cgi?id=259279 > > If you want to workaround it at the moment, you can deactivate > pipelineCompilation until it is fixed. > > -Xset:pipelineCompilation=false > > in the AspectJ compiler options for the project. > > Andy. > > 2008/12/18 Jouni Lantinen <[email protected]> > > Hello. >> >> I have an issue that comes from a combination of things and leads to >> java.lang.ClassFormatError at runtime. Here is the most minimalistic >> package to reproduce this problem: >> >> public aspect Aspect pertypewithin(*){} >> >> public interface GenericService<T extends SomeInterface> { >> public void doStuff(T t); >> } >> >> public class GenericServiceImpl<T extends SomeInterface> implements >> GenericService<T> { >> public void doStuff(T t) {} >> } >> >> public interface SomeInterface {} >> >> public class SomeServiceImpl extends GenericServiceImpl<SomeInterface> { >> @Override >> public void doStuff(SomeInterface someInterface) { >> } >> } >> >> public class Main { >> public static void main(String[] args) { >> new SomeServiceImpl(); >> } >> } >> >> And here is what I get right after I have done clean and ran my little >> test. >> >> Exception in thread "main" java.lang.ClassFormatError: Repetitive method >> name/signature in class file SomeServiceImpl >> at java.lang.ClassLoader.defineClass1(Native Method) >> at java.lang.ClassLoader.defineClass(ClassLoader.java:620) >> at >> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) >> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) >> at java.net.URLClassLoader.access$100(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:306) >> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:251) >> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) >> at Main.main(Main.java:3) >> >> Any of the following will remove this issue: >> >> 1) Removing pertypewithin(*) from the aspect >> 2) Renaming SomeServiceImpl to ASomeServiceImpl, or anything so is >> before GenericServiceImpl alphabetically. >> 3) Compiling SomeServiceImpl again after cleaning (whitespace >> modification and save). >> 4) Commenting the doStuff method out from SomeServiceImpl class. >> 5) Changing method signature in SomeServiceImpl to take T (T extends >> SomeInterface) as the argument. >> >> The difference between working and not working .class files I get is >> that there is an additional method descriptor in the one that does not >> work: >> >> // Method descriptor #15 (LSomeInterface;)V >> // Stack: 2, Locals: 2 >> public bridge void doStuff(SomeInterface arg0); >> 0 aload_0 >> 1 aload_1 >> 2 invokevirtual SomeServiceImpl.doStuff(SomeInterface) : void [36] >> 5 return >> Line numbers: >> [pc: 0, line: 1] >> >> And here are my versions: >> Eclipse Platform >> >> Version: 3.4.1 >> Build id: M20080911-1700 >> >> Eclipse AspectJ Development Tools >> >> Version: 1.6.1.20081104192500 >> AspectJ version: 1.6.3.20081028135200 >> >> java version "1.5.0_16" >> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b02) >> Java HotSpot(TM) Server VM (build 1.5.0_16-b02, mixed mode) >> >> Has anyone experienced and maybe resolved this issue? I tried to browse >> the bug reports but couldn't find anything that seemed like a match. >> >> Thanks in advance, >> Jouni Lantinen >> >> _______________________________________________ >> aspectj-users mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
