Program: 58685
Project: 58685
Buggy source:
/** 
 * Saves the project to the directory with the given name. The directory is created before saving.
 * @param dirName directory to save the project-files into
 */
private void saveToDirectory(String dirName){
  if (dirName.charAt(dirName.length() - 1) != File.separatorChar) {
    dirName+=File.separator;
  }
  File tempDirFile=new File(dirName);
  tempDirFile.mkdir();
  AUseCase useCase=(AUseCase)GeneralManager.get().getUseCase();
  LoadDataParameters parameters=useCase.getLoadDataParameters();
  byte[] data=SetUtils.loadSetFile(parameters);
  String setFileName=dirName + SET_DATA_FILE_NAME;
  File setFile=new File(setFileName);
  SetUtils.saveSetFile(parameters,data,setFile);
  SerializationManager serializationManager=GeneralManager.get().getSerializationManager();
  JAXBContext projectContext=serializationManager.getProjectContext();
  try {
    Marshaller marshaller=projectContext.createMarshaller();
    saveVirtualArray(marshaller,dirName,useCase,EVAType.CONTENT);
    saveVirtualArray(marshaller,dirName,useCase,EVAType.CONTENT_CONTEXT);
    saveVirtualArray(marshaller,dirName,useCase,EVAType.CONTENT_EMBEDDED_HM);
    saveVirtualArray(marshaller,dirName,useCase,EVAType.STORAGE);
    ViewList storeViews=createStoreViewList();
    File viewFile=new File(dirName + VIEWS_FILE_NAME);
    marshaller.marshal(storeViews,viewFile);
    TreePorter treePorter=new TreePorter();
    Tree<ClusterNode> geneTree=useCase.getSet().getClusteredTreeGenes();
    if (geneTree != null) {
      if (treePorter.exportTree(dirName + GENE_TREE_FILE_NAME,geneTree) == false) {
        throw new RuntimeException("String_Node_Str");
      }
    }
    Tree<ClusterNode> expTree=useCase.getSet().getClusteredTreeExps();
    if (expTree != null) {
      if (treePorter.exportTree(dirName + EXP_TREE_FILE_NAME,expTree) == false) {
        throw new RuntimeException("String_Node_Str");
      }
    }
    File useCaseFile=new File(dirName + USECASE_FILE_NAME);
    marshaller.marshal(useCase,useCaseFile);
  }
 catch (  JAXBException ex) {
    throw new RuntimeException("String_Node_Str",ex);
  }
catch (  IOException ex) {
    throw new RuntimeException("String_Node_Str",ex);
  }
}

Fixed version (ground truth):
/** 
 * Saves the project to the directory with the given name. The directory is created before saving.
 * @param dirName directory to save the project-files into
 */
private void saveToDirectory(String dirName){
  if (dirName.charAt(dirName.length() - 1) != File.separatorChar) {
    dirName+=File.separator;
  }
  File tempDirFile=new File(dirName);
  tempDirFile.mkdir();
  AUseCase useCase=(AUseCase)GeneralManager.get().getUseCase();
  LoadDataParameters parameters=useCase.getLoadDataParameters();
  byte[] data=SetUtils.loadSetFile(parameters);
  String setFileName=dirName + SET_DATA_FILE_NAME;
  File setFile=new File(setFileName);
  SetUtils.saveSetFile(parameters,data,setFile);
  SerializationManager serializationManager=GeneralManager.get().getSerializationManager();
  JAXBContext projectContext=serializationManager.getProjectContext();
  try {
    Marshaller marshaller=projectContext.createMarshaller();
    saveVirtualArray(marshaller,dirName,useCase,EVAType.CONTENT);
    saveVirtualArray(marshaller,dirName,useCase,EVAType.CONTENT_CONTEXT);
    saveVirtualArray(marshaller,dirName,useCase,EVAType.CONTENT_EMBEDDED_HM);
    saveVirtualArray(marshaller,dirName,useCase,EVAType.STORAGE);
    ViewList storeViews=createStoreViewList();
    File viewFile=new File(dirName + VIEWS_FILE_NAME);
    marshaller.marshal(storeViews,viewFile);
    TreePorter treePorter=new TreePorter();
    Tree<ClusterNode> geneTree=useCase.getSet().getClusteredTreeGenes();
    if (geneTree != null) {
      if (treePorter.exportTree(dirName + GENE_TREE_FILE_NAME,geneTree) == false) {
        throw new RuntimeException("String_Node_Str");
      }
    }
    treePorter=new TreePorter();
    Tree<ClusterNode> expTree=useCase.getSet().getClusteredTreeExps();
    if (expTree != null) {
      if (treePorter.exportTree(dirName + EXP_TREE_FILE_NAME,expTree) == false) {
        throw new RuntimeException("String_Node_Str");
      }
    }
    File useCaseFile=new File(dirName + USECASE_FILE_NAME);
    marshaller.marshal(useCase,useCaseFile);
  }
 catch (  JAXBException ex) {
    throw new RuntimeException("String_Node_Str",ex);
  }
catch (  IOException ex) {
    throw new RuntimeException("String_Node_Str",ex);
  }
}