org_aspectj_ajde_internal_AspectJBuildManagerTest_java
org.aspectj.ajdt.internal.compiler.WeaverMessageHandler
@Override
    public boolean handleMessage(IMessage message) throws AbortException {
        CompilationResult problemSource;
        if (!message.isError() && !message.isWarning()) {
            return this.sink.handleMessage(message);
        }
        ISourceLocation sLoc = message.getSourceLocation();
        if (sLoc instanceof EclipseSourceLocation) {
            EclipseSourceLocation esLoc = (EclipseSourceLocation)sLoc;
            if (this.currentlyWeaving != null && esLoc.getCompilationResult() != null && !this.currentlyWeaving.equals(((EclipseSourceLocation)sLoc).getCompilationResult())) {
                return this.sink.handleMessage(message);
            }
        }
        if (sLoc instanceof SourceLocation) {
            SourceLocation sl = (SourceLocation)sLoc;
            if (this.currentlyWeaving != null && sl.getSourceFile() != null && !String.valueOf(this.currentlyWeaving.getFileName()).equals(sl.getSourceFile().getAbsolutePath())) {
                return this.sink.handleMessage(message);
            }
        }
        if ((problemSource = this.currentlyWeaving) == null) {
            if (sLoc instanceof EclipseSourceLocation) {
                problemSource = ((EclipseSourceLocation)sLoc).getCompilationResult();
            }
            if (problemSource == null) {
                return this.sink.handleMessage(message);
            }
        }
        int startPos = this.getStartPos(sLoc, problemSource);
        int endPos = this.getEndPos(sLoc, problemSource);
        int severity = message.isError() ? 1 : 0;
        char[] filename = problemSource.fileName;
        boolean usedBinarySourceFileName = false;
        if (problemSource.isFromBinarySource() && sLoc != null) {
            filename = sLoc.getSourceFile().getPath().toCharArray();
            usedBinarySourceFileName = true;
        }
        ReferenceContext referenceContext = this.findReferenceContextFor(problemSource);
        CategorizedProblem problem = this.compiler.problemReporter.createProblem(filename, 0, new String[]{}, new String[]{message.getMessage()}, severity, startPos, endPos, sLoc != null ? sLoc.getLine() : 0, sLoc != null ? sLoc.getColumn() : 0);
        IProblem[] seeAlso = this.buildSeeAlsoProblems(problem, message.getExtraSourceLocations(), problemSource, usedBinarySourceFileName);
        problem.setSeeAlsoProblems(seeAlso);
        StringBuilder details = new StringBuilder();
        if (message.getDetails() != null) {
            details.append(message.getDetails());
        }
        if (message.getDeclared()) {
            details.append("[deow=true]");
        }
        if (message instanceof LintMessage) {
            String lintMessageName = ((LintMessage)message).getLintKind();
            details.append("[Xlint:").append(lintMessageName).append("]");
        }
        if (details.length() != 0) {
            problem.setSupplementaryMessageInfo(details.toString());
        }
        this.compiler.problemReporter.record(problem, problemSource, referenceContext, message.isError());
        return true;
    }
 -> java.util.List.contains(java.lang.Object): boolean -> java.util.Hashtable.get(java.lang.Object): java.lang.Object -> java.util.List.contains(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.io.File.getPath(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.isEmpty(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.io.PrintStream.println(java.lang.String): void
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.List.contains(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [CALL] -> java.util.Hashtable.get(java.lang.Object): java.lang.Object [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] -> java.util.List.contains(java.lang.Object): boolean [EXIT] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.lang.Object.equals(java.lang.Object): boolean [CALL] [EXIT] -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder [CALL] [CALL] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder [CALL] -> java.io.File.getPath(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean [EXIT] [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String -> java.io.PrintStream.println(java.lang.String): void [EXIT] [EXIT] [EXIT] [EXIT]