Community
Participate
Working Groups
java.lang.ClassCastException at org.aspectj.ajdt.internal.compiler.lookup.EclipseResolvedMember.getParameterNames(EclipseResolvedMember.java:98) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:660) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:597) at org.aspectj.weaver.ReferenceType.getDeclaredFields(ReferenceType.java:381) at org.aspectj.weaver.ResolvedType$2.get( ... when weaving when batch building BuildConfig[D:\My Documents\eclipse\.metadata\.plugins\org.eclipse.ajdt.core\cgrid-library.generated.lst] #Files=93 This is with AJDT 1.4.1 on Eclipse 3.2.1.
Here's a more complete stack trace: java.lang.ClassCastException: org.aspectj.org.eclipse.jdt.internal.compiler.lookup.FieldBinding at org.aspectj.ajdt.internal.compiler.lookup.EclipseResolvedMember.getParameterNames(EclipseResolvedMember.java:98) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:660) at org.aspectj.weaver.ResolvedMemberImpl.parameterizedWith(ResolvedMemberImpl.java:597) at org.aspectj.weaver.ReferenceType.getDeclaredFields(ReferenceType.java:381) at org.aspectj.weaver.ResolvedType$2.get(ResolvedType.java:191) 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.lookupField(ResolvedType.java:319) at org.aspectj.weaver.World.resolve(World.java:528) at org.aspectj.weaver.MemberImpl.resolve(MemberImpl.java:96) at org.aspectj.weaver.bcel.BcelClassWeaver.matchSetInstruction(BcelClassWeaver.java:2604) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2484) 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.ajde.internal.CompilerAdapter.compile(CompilerAdapter.java:107) at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run(AspectJBuildManager.java:191)
I've finally been able to reduce this bug to a minimal test case: --- src/main/java/package1/Abstract.java --- package package1; public abstract class Abstract<T> { protected Object field; } --- src/main/java/bug/package2/Concrete.java --- package bug.package2; import package1.Abstract; public class Concrete extends Abstract<Object> { public void method() { field = null; } } --- src/main/aspect/Aspect.aj --- public aspect Aspect { declare error : set(* *) : ""; } ------ See attachment for Eclipse project containing these three source files.
Created attachment 54611 [details] Minimal test case demonstrating the bug
It is related to pipeline compilation - so the files also have to be compiled in a particular order for it to happen, but I've recreated it with those files you attached, thanks! I have a fix ready to go - but just need to sort out my eclipse credentials so I can commit it...
test and fix committed. thanks for the testcase.
fix available in latest dev build.
This fix is now in the latest AJDT 1.5 dev build (for eclipse 3.3M3)