Program: 119129
Project: 119129
Buggy source:
@Override protected void addJobItem(ExportFileResource[] allResources,ProcessItem processItem,boolean needSource,ExportFileResource resource,String... selectedJobVersion){
  if (!needSource) {
    return;
  }
  try {
    String projectName=getCorrespondingProjectName(processItem);
    IPath projectFilePath=getCorrespondingProjectRootPath(processItem).append(FileConstants.LOCAL_PROJECT_FILENAME);
    IPath itemFilePath=getProcessItemPath(processItem,null,false,selectedJobVersion);
    IPath propertiesFilePath=itemFilePath.removeFileExtension().addFileExtension(FileConstants.PROPERTIES_EXTENSION);
    IPath screenshotFilePath=itemFilePath.removeFileExtension().addFileExtension(FileConstants.SCREENSHOT_EXTENSION);
    checkAndAddProjectResource(allResources,resource,JOB_ITEMS_FOLDER_NAME + PATH_SEPARATOR + projectName,FileLocator.toFileURL(projectFilePath.toFile().toURL()));
    List<URL> emfFileUrls=new ArrayList<URL>();
    emfFileUrls.add(FileLocator.toFileURL(itemFilePath.toFile().toURL()));
    emfFileUrls.add(FileLocator.toFileURL(propertiesFilePath.toFile().toURL()));
    emfFileUrls.add(FileLocator.toFileURL(screenshotFilePath.toFile().toURL()));
    ERepositoryObjectType itemType=ERepositoryObjectType.getItemType(processItem);
    IPath typeFolderPath=new Path(ERepositoryObjectType.getFolderName(itemType));
    String relativePath=JOB_ITEMS_FOLDER_NAME + PATH_SEPARATOR + projectName+ PATH_SEPARATOR+ typeFolderPath.toOSString();
    IPath itemFolderPath=itemFilePath.makeRelativeTo(projectFilePath.removeLastSegments(1).append(typeFolderPath)).removeLastSegments(1);
    if (itemFolderPath != null && !"String_Node_Str".equals(itemFolderPath)) {
      relativePath=relativePath + PATH_SEPARATOR + itemFolderPath;
    }
    resource.addResources(relativePath,emfFileUrls);
  }
 catch (  Exception e) {
    ExceptionHandler.process(e);
  }
}

Fixed version (ground truth):
@Override protected void addJobItem(ExportFileResource[] allResources,ProcessItem processItem,boolean needSource,ExportFileResource resource,String... selectedJobVersion){
  if (!needSource) {
    return;
  }
  try {
    String projectName=getCorrespondingProjectName(processItem);
    IPath projectFilePath=getCorrespondingProjectRootPath(processItem).append(FileConstants.LOCAL_PROJECT_FILENAME);
    IPath itemFilePath=getProcessItemPath(processItem,null,false,selectedJobVersion);
    IPath propertiesFilePath=itemFilePath.removeFileExtension().addFileExtension(FileConstants.PROPERTIES_EXTENSION);
    IPath screenshotFilePath=itemFilePath.removeFileExtension().addFileExtension(FileConstants.SCREENSHOT_EXTENSION);
    checkAndAddProjectResource(allResources,resource,JOB_ITEMS_FOLDER_NAME + PATH_SEPARATOR + projectName,FileLocator.toFileURL(projectFilePath.toFile().toURL()));
    List<URL> emfFileUrls=new ArrayList<URL>();
    emfFileUrls.add(FileLocator.toFileURL(itemFilePath.toFile().toURL()));
    emfFileUrls.add(FileLocator.toFileURL(propertiesFilePath.toFile().toURL()));
    emfFileUrls.add(FileLocator.toFileURL(screenshotFilePath.toFile().toURL()));
    ERepositoryObjectType itemType=ERepositoryObjectType.getItemType(processItem);
    IPath typeFolderPath=new Path(ERepositoryObjectType.getFolderName(itemType));
    String relativePath=JOB_ITEMS_FOLDER_NAME + PATH_SEPARATOR + projectName+ PATH_SEPARATOR+ typeFolderPath.toOSString();
    IPath itemFolderPath=itemFilePath.makeRelativeTo(projectFilePath.removeLastSegments(1).append(typeFolderPath)).removeLastSegments(1);
    String itemFolderPathString=null;
    if (itemFolderPath != null) {
      itemFolderPathString=itemFolderPath.toString();
    }
    if (itemFolderPathString != null && !"String_Node_Str".equals(itemFolderPathString)) {
      relativePath=relativePath + PATH_SEPARATOR + itemFolderPathString;
    }
    resource.addResources(relativePath,emfFileUrls);
  }
 catch (  Exception e) {
    ExceptionHandler.process(e);
  }
}