Community
Participate
Working Groups
Got this exception when using the 1.6.7 compiler in AJDT. This was during an incremental build of only that aspect. After a clean build, I can no longer reproduce this problem. I am not particularly concerned about it, but thought you'd want to see this. org.aspectj.ajdt.internal.compiler.lookup.EclipseSourceType$MissingImplementationException: Please raise an AspectJ bug. AspectJ does not know how to convert this annotation [@org.aspectj.lang.annotation.Aspect(value = "percflow(execution(protected void Matchlocator.process(PossibleMatch, boolean)))")] at org.aspectj.ajdt.internal.compiler.lookup.EclipseSourceType.generateAnnotation(EclipseSourceType.java:656) at org.aspectj.ajdt.internal.compiler.lookup.EclipseSourceType.convertEclipseAnnotation(EclipseSourceType.java:629) at org.aspectj.ajdt.internal.compiler.lookup.EclipseSourceType.getAnnotations(EclipseSourceType.java:609) at org.aspectj.weaver.ReferenceType.getAnnotations(ReferenceType.java:150) at org.aspectj.weaver.bcel.Utility.isSuppressing(Utility.java:632) at org.aspectj.weaver.bcel.BcelWeaver.warnOnUnmatchedAdvice(BcelWeaver.java:1412) at org.aspectj.weaver.bcel.BcelWeaver.allWeavingComplete(BcelWeaver.java:1343) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.postWeave(AjPipeliningCompilerAdapter.java:528) at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterCompiling(AjPipeliningCompilerAdapter.java:325) at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:73) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:430) 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:627) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) When trying to compile this code: package org.eclipse.contribution.jdt.itdawareness; import org.eclipse.jdt.core.search.SearchMatch; /** * This aspect maintains match locations for a possible match * while doing searches. * * When a possible match is discovered, its source must be translated so * that ITDs can be inserted into the potential match. * * The mapping between source original and translated locations must be * maintained so that when the actual match is reported, the actual source * location is used. * * @author Andrew Eisenberg * @created Apr 7, 2010 */ @SuppressWarnings("unused") public aspect MatchLocationManipulatorAspect percflow(execution(protected void Matchlocator.process(PossibleMatch, boolean))){ ISearchProvider provider = new SearchAdapter().getProvider(); pointcut possibleMatchContents(PossibleMatch possible) : execution(public char[] PossibleMatch.getContents()) && this(possible); char[] around(PossibleMatch possible) : possibleMatchContents(possible) { char[] orig = proceed(possible); char[] translated = provider.translateForMatchProcessing(orig); return translated; } pointcut matchReported(SearchMatch match) : execution(protected void MatchLocator.report(SearchMatch)) && this(match); }