Program: 185899
Project: 185899
Buggy source:
private void fixModuleNodeLocations(){
  output.setStart(0);
  output.setEnd(locations.getEnd());
  output.setLineNumber(1);
  output.setColumnNumber(1);
  output.setLastColumnNumber(locations.getEndColumn());
  output.setLastLineNumber(locations.getEndLine());
  BlockStatement statements=output.getStatementBlock();
  List<MethodNode> methods=output.getMethods();
  if (hasScriptMethodsOrStatements(statements,methods)) {
    ASTNode first=getFirst(statements,methods);
    ASTNode last=getLast(statements,methods);
    if (hasScriptStatements(statements)) {
      statements.setStart(first.getStart());
      statements.setLineNumber(first.getLineNumber());
      statements.setColumnNumber(first.getColumnNumber());
      statements.setEnd(last.getEnd());
      statements.setLastLineNumber(last.getLastLineNumber());
      statements.setLastColumnNumber(last.getLastColumnNumber());
    }
    if (output.getClasses().size() > 0) {
      ClassNode scriptClass=output.getClasses().get(0);
      scriptClass.setStart(first.getStart());
      scriptClass.setLineNumber(first.getLineNumber());
      scriptClass.setColumnNumber(first.getColumnNumber());
      scriptClass.setEnd(last.getEnd());
      scriptClass.setLastLineNumber(last.getLastLineNumber());
      scriptClass.setLastColumnNumber(last.getLastColumnNumber());
      MethodNode runMethod=scriptClass.getDeclaredMethod("String_Node_Str",new Parameter[0]);
      runMethod.setStart(first.getStart());
      runMethod.setLineNumber(first.getLineNumber());
      runMethod.setColumnNumber(first.getColumnNumber());
      runMethod.setEnd(last.getEnd());
      runMethod.setLastLineNumber(last.getLastLineNumber());
      runMethod.setLastColumnNumber(last.getLastColumnNumber());
    }
  }
}

Fixed version (ground truth):
private void fixModuleNodeLocations(){
  output.setStart(0);
  output.setEnd(locations.getEnd());
  output.setLineNumber(1);
  output.setColumnNumber(1);
  output.setLastColumnNumber(locations.getEndColumn());
  output.setLastLineNumber(locations.getEndLine());
  BlockStatement statement=output.getStatementBlock();
  List<MethodNode> methods=output.getMethods();
  if (hasScriptStatements(statement) || hasScriptMethods(methods)) {
    ASTNode first=getFirst(statement,methods);
    ASTNode last=getLast(statement,methods);
    if (hasScriptStatements(statement)) {
      statement.setStart(first.getStart());
      statement.setLineNumber(first.getLineNumber());
      statement.setColumnNumber(first.getColumnNumber());
      statement.setEnd(last.getEnd());
      statement.setLastLineNumber(last.getLastLineNumber());
      statement.setLastColumnNumber(last.getLastColumnNumber());
    }
    if (!output.getClasses().isEmpty()) {
      ClassNode scriptClass=output.getClasses().get(0);
      scriptClass.setStart(first.getStart());
      scriptClass.setLineNumber(first.getLineNumber());
      scriptClass.setColumnNumber(first.getColumnNumber());
      scriptClass.setEnd(last.getEnd());
      scriptClass.setLastLineNumber(last.getLastLineNumber());
      scriptClass.setLastColumnNumber(last.getLastColumnNumber());
      MethodNode runMethod=scriptClass.getDeclaredMethod("String_Node_Str",new Parameter[0]);
      runMethod.setStart(first.getStart());
      runMethod.setLineNumber(first.getLineNumber());
      runMethod.setColumnNumber(first.getColumnNumber());
      runMethod.setEnd(last.getEnd());
      runMethod.setLastLineNumber(last.getLastLineNumber());
      runMethod.setLastColumnNumber(last.getLastColumnNumber());
    }
  }
}