org_aspectj_ajde_core_tests_ShowWeaveMessagesTest_java
org.aspectj.apache.bcel.generic.MethodGen
public MethodGen(Method m, String class_name, ConstantPool cp, boolean useTags) {
        this(m.getModifiers(), m.getReturnType(), m.getArgumentTypes(), null, m.getName(), class_name, (m.getModifiers() & 0x500) == 0 ? new InstructionList(m.getCode().getCode()) : null, cp);
        Attribute[] attributes;
        for (Attribute attribute : attributes = m.getAttributes()) {
            Attribute a = attribute;
            if (a instanceof Code) {
                Attribute[] codeAttrs;
                Code code = (Code)a;
                this.setMaxStack(code.getMaxStack());
                this.setMaxLocals(code.getMaxLocals());
                Object[] ces = code.getExceptionTable();
                InstructionHandle[] arrayOfInstructions = this.il.getInstructionsAsArray();
                if (ces != null) {
                    for (Object ce : ces) {
                        InstructionHandle end;
                        int type = ((CodeException)ce).getCatchType();
                        ObjectType catchType = null;
                        if (type > 0) {
                            String cen = m.getConstantPool().getConstantString_CONSTANTClass(type);
                            catchType = new ObjectType(cen);
                        }
                        int end_pc = ((CodeException)ce).getEndPC();
                        int length = m.getCode().getCode().length;
                        if (length == end_pc) {
                            end = this.il.getEnd();
                        } else {
                            end = this.il.findHandle(end_pc, arrayOfInstructions);
                            end = end.getPrev();
                        }
                        this.addExceptionHandler(this.il.findHandle(((CodeException)ce).getStartPC(), arrayOfInstructions), end, this.il.findHandle(((CodeException)ce).getHandlerPC(), arrayOfInstructions), catchType);
                    }
                }
                for (Attribute codeAttr : codeAttrs = code.getAttributes()) {
                    a = codeAttr;
                    if (a instanceof LineNumberTable) {
                        LineNumber[] ln = ((LineNumberTable)a).getLineNumberTable();
                        if (useTags) {
                            for (Node node : ln) {
                                int lnum = ((LineNumber)node).getLineNumber();
                                if (lnum > this.highestLineNumber) {
                                    this.highestLineNumber = lnum;
                                }
                                LineNumberTag lt = new LineNumberTag(lnum);
                                this.il.findHandle(((LineNumber)node).getStartPC(), arrayOfInstructions, true).addTargeter(lt);
                            }
                            continue;
                        }
                        for (Node node : ln) {
                            this.addLineNumber(this.il.findHandle(((LineNumber)node).getStartPC(), arrayOfInstructions, true), ((LineNumber)node).getLineNumber());
                        }
                        continue;
                    }
                    if (a instanceof LocalVariableTable) {
                        LocalVariable[] lv;
                        if (useTags) {
                            lv = ((LocalVariableTable)a).getLocalVariableTable();
                            for (Node node : lv) {
                                Type t = Type.getType(((LocalVariable)node).getSignature());
                                LocalVariableTag lvt = new LocalVariableTag(t, ((LocalVariable)node).getSignature(), ((LocalVariable)node).getName(), ((LocalVariable)node).getIndex(), ((LocalVariable)node).getStartPC());
                                InstructionHandle start = this.il.findHandle(((LocalVariable)node).getStartPC(), arrayOfInstructions, true);
                                byte b = t.getType();
                                if (b != 16) {
                                    int increment = t.getSize();
                                    if (((LocalVariable)node).getIndex() + increment > this.maxLocals) {
                                        this.maxLocals = ((LocalVariable)node).getIndex() + increment;
                                    }
                                }
                                int end = ((LocalVariable)node).getStartPC() + ((LocalVariable)node).getLength();
                                do {
                                    start.addTargeter(lvt);
                                } while ((start = start.getNext()) != null && start.getPosition() < end);
                            }
                            continue;
                        }
                        lv = ((LocalVariableTable)a).getLocalVariableTable();
                        this.removeLocalVariables();
                        for (Node node : lv) {
                            InstructionHandle start = this.il.findHandle(((LocalVariable)node).getStartPC(), arrayOfInstructions);
                            InstructionHandle end = this.il.findHandle(((LocalVariable)node).getStartPC() + ((LocalVariable)node).getLength(), arrayOfInstructions);
                            if (end != null) {
                                end = end.getPrev();
                            }
                            if (null == start) {
                                start = this.il.getStart();
                            }
                            if (null == end) {
                                end = this.il.getEnd();
                            }
                            this.addLocalVariable(((LocalVariable)node).getName(), Type.getType(((LocalVariable)node).getSignature()), ((LocalVariable)node).getIndex(), start, end);
                        }
                        continue;
                    }
                    this.addCodeAttribute(a);
                }
                continue;
            }
            if (a instanceof ExceptionTable) {
                String[] names = ((ExceptionTable)a).getExceptionNames();
                for (String s : names) {
                    this.addException(s);
                }
                continue;
            }
            if (a instanceof RuntimeAnnos) {
                RuntimeAnnos runtimeAnnotations = (RuntimeAnnos)a;
                List<AnnotationGen> l = runtimeAnnotations.getAnnotations();
                this.annotationList.addAll(l);
                continue;
            }
            this.addAttribute(a);
        }
    }
 -> java.lang.String.lastIndexOf(int): int -> java.lang.String.substring(int): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.substring(int): java.lang.String -> java.lang.String.charAt(int): char -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.charAt(int): char -> java.util.List.size(): int -> java.util.List.toArray(java.lang.Object[]): java.lang.Object[] -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.util.Collections.emptySet(): java.util.Set -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void -> java.util.Set.add(java.lang.Object): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.util.List.add(java.lang.Object): boolean -> java.util.List.clear(): void -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.charAt(int): char -> java.lang.String.indexOf(int): int -> java.lang.String.indexOf(int): 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.String.replace(char,char): 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.toString(): java.lang.String -> java.util.Set.add(java.lang.Object): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.util.List.indexOf(java.lang.Object): int -> java.util.List.add(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Set.add(java.lang.Object): boolean -> java.util.Set.add(java.lang.Object): boolean -> java.util.List.indexOf(java.lang.Object): int -> java.util.List.add(java.lang.Object): boolean
 [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.String.lastIndexOf(int): int -> java.lang.String.substring(int): java.lang.String [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.substring(int): java.lang.String [CALL] [CALL] -> java.lang.String.charAt(int): char [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] [EXIT] -> java.lang.String.charAt(int): char -> java.util.List.size(): int -> java.util.List.toArray(java.lang.Object[]): java.lang.Object[] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.util.Collections.emptySet(): java.util.Set [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.System.arraycopy(java.lang.Object,int,java.lang.Object,int,int): void [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Set.add(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Set.add(java.lang.Object): boolean [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.util.List.add(java.lang.Object): boolean [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] -> java.util.Set.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.util.List.clear(): void [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.lang.String.charAt(int): char [EXIT] -> java.lang.String.indexOf(int): int -> java.lang.String.indexOf(int): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.replace(char,char): java.lang.String [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.replace(char,char): 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.toString(): java.lang.String [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.util.Set.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Set.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.List.indexOf(java.lang.Object): int -> java.util.List.add(java.lang.Object): boolean [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] -> java.util.Set.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.util.Set.add(java.lang.Object): boolean [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.List.indexOf(java.lang.Object): int [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT]