Community
Participate
Working Groups
The following code causes AJC to throw an ArrayOutOfBoundsException: > public interface AspectInterface<T, S extends Number> { } > > public abstract aspect AbstractAspect<T> > implements AspectInterface<T, Integer> {} > > public aspect ConcreteAspect extends AbstractAspect<Student> { } (as ususal, details of Student do not matter). I will attach a complete code example and the full error report is given below. Cheers, David J. Pearce === BEGIN ERROR REPORT === ajc -1.5 AspectInterface.java Student.java ConcreteAspect.aj AbstractAspect.aj /am/state-opera/home/djp/projects/RelationsForJava/test/example/AbstractAspect.aj [error] Internal compiler error java.lang.ArrayIndexOutOfBoundsException: 1 at org.aspectj.weaver.ResolvedType.getMemberParameterizationMap(ResolvedType.java:691) at org.aspectj.weaver.ResolvedType.getAjMemberParameterizationMap(ResolvedType.java:2065) at org.aspectj.weaver.ReferenceType.getDeclares(ReferenceType.java:575) at org.aspectj.weaver.ResolvedType.collectDeclares(ResolvedType.java:539) at org.aspectj.weaver.ResolvedType.collectCrosscuttingMembers(ResolvedType.java:504) at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:61) at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.addCrosscuttingStructures(AjLookupEnvironment.java:391) at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.collectAllITDsAndDeclares(AjLookupEnvironment.java:327) at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.completeTypeBindings(AjLookupEnvironment.java:168) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:301) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:315) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:819) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:234) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:157) 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:326) at org.aspectj.tools.ajc.Main.runMain(Main.java:240) at org.aspectj.tools.ajc.Main.main(Main.java:83) (no source information available) ABORT Exception thrown from AspectJ DEVELOPMENT 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. 1 when collecting itds and declares ConcreteAspect when completing type bindings when batch building with classpath: /usr/pkg/java/sun-1.5/lib/ext/sunjce_provider.jar:/usr/pkg/java/sun-1.5/lib/ext/sunpkcs11.jar:/usr/pkg/java/sun-1.5/lib/ext/dnsns.jar:/usr/pkg/java/sun-1.5/lib/ext/localedata.jar:/usr/pkg/java/sun-1.5/lib/tools.jar:.:/u/staff/djp/src/mocha/mocha.zip:/u/staff/djp/pkg/aspectj1.5-DEVEL250106/lib/aspectjrt.jar:/mnt/scratch/djp/specjvm98:/u/staff/djp/teaching/comp463/soot/sootclasses-2.2.1.jar:/u/staff/djp/teaching/comp463/soot/polyglotclasses-1.3.jar:/u/staff/djp/pkg/antlr/antlr-2.7.5.jar: 1 java.lang.ArrayIndexOutOfBoundsException: 1 at org.aspectj.weaver.ResolvedType.getMemberParameterizationMap(ResolvedType.java:691) at org.aspectj.weaver.ResolvedType.getAjMemberParameterizationMap(ResolvedType.java:2065) at org.aspectj.weaver.ReferenceType.getDeclares(ReferenceType.java:575) at org.aspectj.weaver.ResolvedType.collectDeclares(ResolvedType.java:539) at org.aspectj.weaver.ResolvedType.collectCrosscuttingMembers(ResolvedType.java:504) at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:61) at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.addCrosscuttingStructures(AjLookupEnvironment.java:391) at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.collectAllITDsAndDeclares(AjLookupEnvironment.java:327) at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.completeTypeBindings(AjLookupEnvironment.java:168) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:301) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:315) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:819) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:234) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:157) 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:326) at org.aspectj.tools.ajc.Main.runMain(Main.java:240) at org.aspectj.tools.ajc.Main.main(Main.java:83) 1 fail|abort, 1 error gmake: *** [all] Error 255 === END ===
Created attachment 33547 [details] Example code
Actually, I've just realised you don't even need the "extends Number" bit to see the problem.
I've now tried versions 1.5M5, 1.5RC1, 1.5, and the latest development snapshot as of today. But, none works ...
fix checked in.
fix available.