org_aspectj_ajde_core_tests_ShowWeaveMessagesTest_java
org.aspectj.weaver.bcel.BcelWorld
private void reportWeavingMessage(ShadowMunger munger, Shadow shadow) {
        Advice advice = (Advice)munger;
        AdviceKind aKind = advice.getKind();
        if (aKind == null || advice.getConcreteAspect() == null) {
            return;
        }
        if (!(aKind.equals(AdviceKind.Before) || aKind.equals(AdviceKind.After) || aKind.equals(AdviceKind.AfterReturning) || aKind.equals(AdviceKind.AfterThrowing) || aKind.equals(AdviceKind.Around) || aKind.equals(AdviceKind.Softener))) {
            return;
        }
        if (shadow.getKind() == Shadow.SynchronizationUnlock) {
            if (advice.lastReportedMonitorExitJoinpointLocation == null) {
                advice.lastReportedMonitorExitJoinpointLocation = shadow.getSourceLocation();
            } else {
                if (this.areTheSame(shadow.getSourceLocation(), advice.lastReportedMonitorExitJoinpointLocation)) {
                    advice.lastReportedMonitorExitJoinpointLocation = null;
                    return;
                }
                advice.lastReportedMonitorExitJoinpointLocation = shadow.getSourceLocation();
            }
        }
        String description = advice.getKind().toString();
        String advisedType = shadow.getEnclosingType().getName();
        String advisingType = advice.getConcreteAspect().getName();
        WeaveMessage msg = null;
        if (advice.getKind().equals(AdviceKind.Softener)) {
            msg = WeaveMessage.constructWeavingMessage(WeaveMessage.WEAVEMESSAGE_SOFTENS, new String[]{advisedType, this.beautifyLocation(shadow.getSourceLocation()), advisingType, this.beautifyLocation(munger.getSourceLocation())}, advisedType, advisingType);
        } else {
            boolean runtimeTest = advice.hasDynamicTests();
            String joinPointDescription = shadow.toString();
            msg = WeaveMessage.constructWeavingMessage(WeaveMessage.WEAVEMESSAGE_ADVISES, new String[]{joinPointDescription, advisedType, this.beautifyLocation(shadow.getSourceLocation()), description, advisingType, this.beautifyLocation(munger.getSourceLocation()), runtimeTest ? " [with runtime test]" : ""}, advisedType, advisingType);
        }
        this.getMessageHandler().handleMessage(msg);
    }
 -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): 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.Object): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): 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.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> 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.append(int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.io.File.getName(): java.lang.String -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int -> java.io.File.getPath(): java.lang.String -> java.lang.String.substring(int): 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.toString(): java.lang.String -> java.io.File.getName(): java.lang.String -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int -> java.io.File.getPath(): java.lang.String -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.io.File.getPath(): java.lang.String -> java.lang.String.substring(int): 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(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): 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.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Collections.emptyList(): java.util.List -> 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
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.equals(java.lang.Object): boolean [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder [CALL] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): 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 [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> 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 [CALL] [EXIT] -> 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 [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.getName(): java.lang.String -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int [CALL] [EXIT] -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int [CALL] [EXIT] -> java.io.File.getPath(): java.lang.String -> java.lang.String.substring(int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(int): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.io.File.getName(): java.lang.String -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int [CALL] [EXIT] -> java.io.File.getPath(): java.lang.String -> java.lang.String.lastIndexOf(int): int [CALL] [EXIT] -> java.io.File.getPath(): java.lang.String -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.contains(java.lang.CharSequence): boolean [CALL] [EXIT] -> java.io.File.getPath(): java.lang.String -> java.lang.String.substring(int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(int): java.lang.StringBuilder [CALL] [EXIT] -> 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.append(java.lang.String): 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] [CALL] [CALL] [EXIT] -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.charAt(int): char -> java.lang.Character.getNumericValue(char): int -> java.lang.StringBuilder.replace(int,int,java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String): int -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [CALL] [CALL] -> java.util.Collections.emptyList(): java.util.List [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [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 [EXIT] [EXIT] [EXIT] [EXIT] [EXIT]