org_aspectj_ajde_core_tests_model_SavedModelConsistencyTest_java
org.aspectj.weaver.bcel.BcelWorld
public Member makeJoinPointSignatureForMethodInvocation(LazyClassGen cg, InvokeInstruction ii) {
        int modifier;
        ConstantPool cpg = cg.getConstantPool();
        String name = ii.getName(cpg);
        String declaring = ii.getClassName(cpg);
        UnresolvedType declaringType = null;
        String signature = ii.getSignature(cpg);
        if (name.startsWith("ajc$privMethod$")) {
            try {
                declaringType = UnresolvedType.forName(declaring);
                String typeNameAsFoundInAccessorName = declaringType.getName().replace('.', '_');
                int indexInAccessorName = name.lastIndexOf(typeNameAsFoundInAccessorName);
                if (indexInAccessorName != -1) {
                    ResolvedMember[] methods;
                    String methodName = name.substring(indexInAccessorName + typeNameAsFoundInAccessorName.length() + 1);
                    ResolvedType resolvedDeclaringType = declaringType.resolve(this);
                    for (ResolvedMember method : methods = resolvedDeclaringType.getDeclaredMethods()) {
                        if (!method.getName().equals(methodName) || !method.getSignature().equals(signature) || !Modifier.isPrivate(method.getModifiers())) continue;
                        return method;
                    }
                }
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
        int n = ii instanceof INVOKEINTERFACE ? 512 : (ii.opcode == 184 ? 8 : (modifier = ii.opcode == 183 && !name.equals("<init>") ? 2 : 0));
        if (ii.opcode == 184) {
            ResolvedType appearsDeclaredBy = this.resolve(declaring);
            Iterator<ResolvedMember> iterator = appearsDeclaredBy.getMethods(true, true);
            while (iterator.hasNext()) {
                ResolvedMember method = iterator.next();
                if (!Modifier.isStatic(method.getModifiers()) || !name.equals(method.getName()) || !signature.equals(method.getSignature())) continue;
                declaringType = method.getDeclaringType();
                break;
            }
        }
        if (declaringType == null) {
            declaringType = declaring.charAt(0) == '[' ? UnresolvedType.forSignature(declaring) : UnresolvedType.forName(declaring);
        }
        return MemberImpl.method(declaringType, modifier, name, signature);
    }
 -> java.lang.String.charAt(int): char -> java.lang.String.replace(char,char): java.lang.String -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char -> java.lang.String.contains(java.lang.CharSequence): boolean -> 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.toString(): java.lang.String -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int -> java.lang.String.charAt(int): char -> java.lang.String.indexOf(int): int -> java.lang.String.charAt(int): char -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.charAt(int): char -> java.util.List.toArray(java.lang.Object[]): java.lang.Object[] -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char -> java.lang.String.equals(java.lang.Object): boolean -> 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.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] -> java.lang.String.charAt(int): char -> java.lang.String.replace(char,char): java.lang.String [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.charAt(int): char [CALL] [CALL] -> java.lang.String.length(): int -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char -> java.lang.String.contains(java.lang.CharSequence): boolean -> 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.toString(): java.lang.String [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.indexOf(int): int -> java.lang.String.charAt(int): char -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int [CALL] [EXIT] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.charAt(int): char -> java.util.List.toArray(java.lang.Object[]): java.lang.Object[] -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.charAt(int): char [EXIT] [EXIT] [CALL] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] -> 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 [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [EXIT] [EXIT]