Community
Participate
Working Groups
The attached class files cause the aspectJ compiler v1.5.3 to crash upon compilation with the following error: logan@logan01 ~/zillow/src/code/z4/RandomStuff $ ajc -1.5 AspectBreaker.java TestAspect.aj trouble in: public class AspectBreaker extends java.util.ArrayList: private static final long serialVersionUID = 1 public void <init>() org.aspectj.weaver.MethodDeclarationLineNumber: 7:157 : ALOAD_0 // LAspectBreaker; this (line 7) INVOKESPECIAL java.util.ArrayList.<init> ()V constructor-execution(void AspectBreaker.<init>()) | RETURN (line 8) constructor-execution(void AspectBreaker.<init>()) end public void <init>() public boolean test(ICounterValue[]) org.aspectj.weaver.MethodDeclarationLineNumber: 10:201 : method-execution(boolean AspectBreaker.test(ICounterValue[])) | ALOAD_0 // LAspectBreaker; this (line 11) | method-call(int AspectBreaker.size()) | | INVOKEVIRTUAL AspectBreaker.size ()I | method-call(int AspectBreaker.size()) | POP | ICONST_0 (line 13) | IRETURN method-execution(boolean AspectBreaker.test(ICounterValue[])) end public boolean test(ICounterValue[]) end public class AspectBreaker Exception thrown from AspectJ 1.5.3 This might be logged as a bug already -- find current bugs at http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler Bugs for exceptions thrown have titles File:line from the top stack, e.g., "SomeFile.java:243" If you don't find the exception below in a bug, please add a new bug at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ To make the bug a priority, please include a test program that can reproduce this exception. org.aspectj.weaver.ResolvedType$Array when weaving classes when weaving when batch building BuildConfig[null] #Files=2 org.aspectj.weaver.ResolvedType$Array java.lang.ClassCastException: org.aspectj.weaver.ResolvedType$Array at org.aspectj.weaver.BoundedReferenceType.parameterize(BoundedReferenceType.java:64) at org.aspectj.weaver.ResolvedType.parameterize(ResolvedType.java:1878) at org.aspectj.weaver.ResolvedMemberImpl.parameterize(ResolvedMemberImpl.java:682) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:644) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:597) at org.aspectj.weaver.ReferenceType.getDeclaredMethods(ReferenceType.java:512) at org.aspectj.weaver.ResolvedType$4.get(ResolvedType.java:226) at org.aspectj.weaver.Iterators$3$1.hasNext(Iterators.java:118) at org.aspectj.weaver.Iterators$5.hasNext(Iterators.java:171) at org.aspectj.weaver.Iterators$3.hasNext(Iterators.java:128) at org.aspectj.weaver.ResolvedType.lookupMember(ResolvedType.java:346) at org.aspectj.weaver.ResolvedType.lookupMethod(ResolvedType.java:327) at org.aspectj.weaver.World.resolve(World.java:530) at org.aspectj.weaver.MemberImpl.resolve(MemberImpl.java:96) at org.aspectj.weaver.JoinPointSignatureIterator.addSignaturesUpToFirstDefiningMember(JoinPointSignatureIterator.java:109) at org.aspectj.weaver.JoinPointSignatureIterator.<init>(JoinPointSignatureIterator.java:51) at org.aspectj.weaver.MemberImpl.getJoinPointSignatures(MemberImpl.java:961) at org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:286) at org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:106) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:52) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:75) at org.aspectj.weaver.Advice.match(Advice.java:112) at org.aspectj.weaver.bcel.BcelAdvice.match(BcelAdvice.java:118) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2806) at org.aspectj.weaver.bcel.BcelClassWeaver.matchInvokeInstruction(BcelClassWeaver.java:2768) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2506) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2332) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:494) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:119) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1612) at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1563) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1341) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1161) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:455) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.queueForWeaving(AjPipeliningCompilerAdapter.java:392) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterProcessing(AjPipeliningCompilerAdapter.java:380) at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$after$org_aspectj_ajdt_internal_compiler_CompilerAdapter$5$6b855184(CompilerAdapter.aj:98) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:533) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:329) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:906) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:260) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:176) at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112) at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60) at org.aspectj.tools.ajc.Main.run(Main.java:378) at org.aspectj.tools.ajc.Main.runMain(Main.java:253) at org.aspectj.tools.ajc.Main.main(Main.java:88) Dec 7, 2006 5:43:33 PM org.aspectj.weaver.tools.Jdk14Trace info INFO: Dumping to /home/logan/zillow/src/code/z4/RandomStuff/./ajcore.20061207.174333.963.txt 1 fail|abort logan@logan01 ~/zillow/src/code/z4/RandomStuff $
Created attachment 55292 [details] Java file that breaks the compiler
Created attachment 55293 [details] Aspect that breaks the class
testcase added, commented out in Ajc154Tests. The problem here is due to the special type ResolvedType$Array which is used to represent array types. It is not a descendant of ReferenceType and so we get into problems.
I have fixed this - I made the Array type a subtype of ReferenceType rather than ResolvedType. will be in dev builds shortly.