if (DEBUG) { System.out.println("Method: " + methodGen.getName() + " - " + methodGen.getSignature() + "in class " + methodGen.getClassName());
if (DEBUG) { System.out.println("Method: " + methodGen.getName() + " - " + methodGen.getSignature() + "in class " + methodGen.getClassName()); }   LineNumberTable table = methodGen.getLineNumberTable(methodGen.getConstantPool());  if (table != null && table.getTableLength() > 0) { checkTable(table); InstructionHandle handle = methodGen.getInstructionList().getStart(); while (handle != null) { int bytecodeOffset = handle.getPosition(); if (bytecodeOffset < 0) throw new IllegalStateException("Bad bytecode offset: " + bytecodeOffset); if (DEBUG) System.out.println("Looking for source line for bytecode offset " + bytecodeOffset); int sourceLine; try { sourceLine = table.getSourceLine(bytecodeOffset); } catch (ArrayIndexOutOfBoundsException e) { if (LINE_NUMBER_BUG) throw e; else sourceLine = -1; } if (sourceLine >= 0) ++numGood; lineNumberMap.put(handle, new LineNumber(bytecodeOffset, sourceLine)); handle = handle.getNext(); ++numBytecodes; } hasLineNumbers = true;  if (DEBUG) System.out.println("\t" + numGood + "/" + numBytecodes + " had valid line numbers"); }
    public void build() {	int numGood = 0, numBytecodes = 0;	if (DEBUG) {	    System.out.println("Method: " + methodGen.getName() + " - " + methodGen.getSignature() +		"in class " + methodGen.getClassName());	}	// Associate line number information with each InstructionHandle	LineNumberTable table = methodGen.getLineNumberTable(methodGen.getConstantPool());	if (table != null && table.getTableLength() > 0) {	    checkTable(table);	    InstructionHandle handle = methodGen.getInstructionList().getStart();	    while (handle != null) {		int bytecodeOffset = handle.getPosition();		if (bytecodeOffset < 0)		    throw new IllegalStateException("Bad bytecode offset: " + bytecodeOffset);		if (DEBUG) System.out.println("Looking for source line for bytecode offset " + bytecodeOffset);		int sourceLine;		try {		    sourceLine = table.getSourceLine(bytecodeOffset);		} catch (ArrayIndexOutOfBoundsException e) {		    if (LINE_NUMBER_BUG)			throw e;		    else			sourceLine = -1;		}		if (sourceLine >= 0)		    ++numGood;		lineNumberMap.put(handle,		    new LineNumber(bytecodeOffset, sourceLine));		handle = handle.getNext();		++numBytecodes;	    }	    hasLineNumbers = true;	    if (DEBUG) System.out.println("\t" + numGood + "/" + numBytecodes + " had valid line numbers");	}    }