Bug 308393 - org.aspectj.ajdt.internal.compiler.lookup.EclipseSourceType$MissingImplementationException
Summary: org.aspectj.ajdt.internal.compiler.lookup.EclipseSourceType$MissingImplementa...
Status: NEW
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.6.7   Edit
Hardware: Macintosh Mac OS X - Carbon (unsup.)
: P3 minor (vote)
Target Milestone: ---   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-07 16:00 EDT by Andrew Eisenberg CLA
Modified: 2010-04-07 16:00 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Eisenberg CLA 2010-04-07 16:00:46 EDT
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);  
}