Program: 75809
Project: 75809
Buggy source:
/** 
 * Make a list of CompileUnitNodes that contain the superclasses of the given className, while is found in the given fileName. Also make a list of strings that are the corresponding (primary) class names. Return both these lists in an array. The lists should start from the class that immediately extends a known actor class (such as TypedAtomicActor), and goes to the class given by the argument className. The CompileUnitNodes are cloned from the ones returned by StaticResolution so that they may be modified.
 */
protected LinkedList[] _makeUnitList(String fileName,String className){
  LinkedList nodeList=new LinkedList();
  CompileUnitNode unitNode=(CompileUnitNode)StaticResolution.loadFileName(fileName,2).clone();
  nodeList.addFirst(unitNode);
  LinkedList classNameList=new LinkedList();
  classNameList.addFirst(ASTReflect.getFullyQualifiedName(unitNode));
  do {
    ClassDecl superDecl=(ClassDecl)unitNode.accept(new FindSuperClassDecl(className),null);
    if ((superDecl == StaticResolution.OBJECT_DECL) || (superDecl == null)) {
      return new LinkedList[]{nodeList,classNameList};
    }
 else {
      int superKind=_typeID.kindOfClassDecl(superDecl);
      if (_typeID.isSupportedActorKind(superKind)) {
        return new LinkedList[]{nodeList,classNameList};
      }
      fileName=superDecl.fullName(File.separatorChar);
      File file;
      try {
        file=SearchPath.NAMED_PATH.openSource(fileName);
      }
 catch (      IOException e) {
        throw new RuntimeException("String_Node_Str" + fileName + "String_Node_Str"+ e);
      }
      unitNode=(CompileUnitNode)StaticResolution.loadFile(file,2).clone();
      nodeList.addFirst(unitNode);
      className=superDecl.getName();
      classNameList.addFirst(ASTReflect.getFullyQualifiedName(unitNode));
    }
  }
 while (true);
}

Fixed version (ground truth):
/** 
 * Make a list of CompileUnitNodes that contain the superclasses of the given className, while is found in the given fileName. Also make a list of strings that are the corresponding (primary) class names. Return both these lists in an array. The lists should start from the class that immediately extends a known actor class (such as TypedAtomicActor), and goes to the class given by the argument className. The CompileUnitNodes are cloned from the ones returned by StaticResolution so that they may be modified.
 */
protected LinkedList[] _makeUnitList(String fileName,String className){
  LinkedList nodeList=new LinkedList();
  CompileUnitNode unitNode=(CompileUnitNode)StaticResolution.loadFileName(fileName,2,className).clone();
  nodeList.addFirst(unitNode);
  LinkedList classNameList=new LinkedList();
  classNameList.addFirst(ASTReflect.getFullyQualifiedName(unitNode));
  do {
    ClassDecl superDecl=(ClassDecl)unitNode.accept(new FindSuperClassDecl(className),null);
    if ((superDecl == StaticResolution.OBJECT_DECL) || (superDecl == null)) {
      return new LinkedList[]{nodeList,classNameList};
    }
 else {
      int superKind=_typeID.kindOfClassDecl(superDecl);
      if (_typeID.isSupportedActorKind(superKind)) {
        return new LinkedList[]{nodeList,classNameList};
      }
      fileName=superDecl.fullName(File.separatorChar);
      File file;
      try {
        file=SearchPath.NAMED_PATH.openSource(fileName);
      }
 catch (      IOException e) {
        throw new RuntimeException("String_Node_Str" + fileName + "String_Node_Str"+ e);
      }
      if (StaticResolution.traceLoading)       System.out.println("String_Node_Str" + fileName + "String_Node_Str"+ ASTReflect.getLoadingStatus(true,false));
      unitNode=(CompileUnitNode)StaticResolution.loadFile(file,2,superDecl.fullName()).clone();
      nodeList.addFirst(unitNode);
      className=superDecl.getName();
      classNameList.addFirst(ASTReflect.getFullyQualifiedName(unitNode));
    }
  }
 while (true);
}