Community
Participate
Working Groups
Build Identifier: I20100429-1549 Internal compiler error java.lang.ArrayIndexOutOfBoundsException: 3 at org.aspectj.weaver.bcel.BcelWeaver.validateSingleBranchRecursion(BcelWeaver.java:836) at org.aspectj.weaver.bcel.BcelWeaver.validateSingleBranchRecursion(BcelWeaver.java:819) at org.aspectj.weaver.bcel.BcelWeaver.validateSingleBranchRecursion(BcelWeaver.java:818) at org.aspectj.weaver.bcel.BcelWeaver.validateSingleBranch(BcelWeaver.java:785) at org.aspectj.weaver.bcel.BcelWeaver.validateBindings(BcelWeaver.java:732) at org.aspectj.weaver.bcel.BcelWeaver.rewritePointcuts(BcelWeaver.java:652) at org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave(BcelWeaver.java:540) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.ensureWeaverInitialized (AjPipeliningCompilerAdapter.java:472) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries (AjPipeliningCompilerAdapter.java:452) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.queueForWeaving (AjPipeliningCompilerAdapter.java:390) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterProcessing (AjPipeliningCompilerAdapter.java:375) 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:652) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1022) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:305) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.incrementalBuild(AjBuildManager.java:185) at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:127) at org.aspectj.ajde.core.AjCompiler.build(AjCompiler.java:88) at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:245) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:203) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:255) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:258) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:311) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:343) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:242) at org.eclipse.core.internal.jobs.Worker.run( Reproducible: Always Steps to Reproduce: Compile these classes -----------Aspect------------- package com.test; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Pointcut; public aspect Arguments { @Pointcut("execution(@Test * *(..)) && @annotation(test) && @within( test1 ) && this(test2)") public void unit(Test2 test2, Test1 test1, Test test) { } @Around("execution(@Test * *(..)) && @annotation(test) && @within( test1 ) && this(test2)") public void test( ProceedingJoinPoint pjp, Test test2, Test1 test1, Test test){ } -----------Annotation------------- package com.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention( RetentionPolicy.RUNTIME ) @Target({ ElementType.METHOD }) public @interface Test { } -----------Annotation------------- package com.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention( RetentionPolicy.RUNTIME ) @Target({ ElementType.METHOD }) public @interface Test1 { } -----------Class------------- package com.test; public class Test2 { } }
this occurs because you are defining annotation style pointcuts inside a code style aspect. Can you make the aspect annotation style too??
fixed. thanks for the testcode