Program: 121168
Project: 121168
Buggy source:
@Override public List<ExportFileResource> getExportResources(ExportFileResource[] processes,String... codeOptions) throws ProcessorException {
  List<ExportFileResource> list=super.getExportResources(processes,codeOptions);
  Map<String,String> mavenPropertiesMap=getMainMavenProperties(processes[0].getItem());
  Iterator<ExportFileResource> it=list.iterator();
  while (it.hasNext()) {
    ExportFileResource resource=it.next();
    if ("String_Node_Str".equals(resource.getDirectoryName())) {
      Map<String,Set<URL>> newResourcesMap=new HashMap<String,Set<URL>>();
      for (      String path : resource.getRelativePathList()) {
        if (path.startsWith("String_Node_Str")) {
          Set<URL> urls=resource.getResourcesByRelativePath(path);
          newResourcesMap.put(IMavenProperties.MAIN_RESOURCES_PATH + path,urls);
        }
      }
      resource.removeAllMap();
      for (      String path : newResourcesMap.keySet()) {
        resource.addResources(path,new ArrayList<URL>(newResourcesMap.get(path)));
      }
    }
 else     if (LIBRARY_FOLDER_NAME.equals(resource.getDirectoryName())) {
      resource.setDirectoryName(IMavenProperties.MAIN_RESOURCES_LIB_PATH);
    }
 else     if (PROVIDED_LIB_FOLDER.equals(resource.getDirectoryName())) {
      resource.setDirectoryName(IMavenProperties.MAIN_RESOURCES_PROVIDED_LIB_PATH);
    }
 else     if (FileConstants.META_INF_FOLDER_NAME.equals(resource.getDirectoryName())) {
      it.remove();
      if (!resource.getAllResources().isEmpty()) {
        Set<URL> urls=resource.getAllResources().iterator().next();
        if (!urls.isEmpty()) {
          URL manifestURL=urls.iterator().next();
          getMenifestMavenProperties(manifestURL,mavenPropertiesMap);
        }
      }
    }
  }
  addSourceCodeToExport(list,processes,codeOptions);
  addMavenScriptToExport(list,processes,mavenPropertiesMap);
  return list;
}

Fixed version (ground truth):
@Override public List<ExportFileResource> getExportResources(ExportFileResource[] processes,String... codeOptions) throws ProcessorException {
  List<ExportFileResource> list=super.getExportResources(processes,codeOptions);
  Map<String,String> mavenPropertiesMap=getMainMavenProperties(processes[0].getItem());
  Iterator<ExportFileResource> it=list.iterator();
  while (it.hasNext()) {
    ExportFileResource resource=it.next();
    if ("String_Node_Str".equals(resource.getDirectoryName())) {
      Map<String,Set<URL>> newResourcesMap=new HashMap<String,Set<URL>>();
      for (      String path : resource.getRelativePathList()) {
        if (path.startsWith("String_Node_Str") || path.startsWith(FileConstants.META_INF_FOLDER_NAME)) {
          Set<URL> urls=resource.getResourcesByRelativePath(path);
          newResourcesMap.put(IMavenProperties.MAIN_RESOURCES_PATH + path,urls);
        }
      }
      resource.removeAllMap();
      for (      String path : newResourcesMap.keySet()) {
        resource.addResources(path,new ArrayList<URL>(newResourcesMap.get(path)));
      }
    }
 else     if (LIBRARY_FOLDER_NAME.equals(resource.getDirectoryName())) {
      resource.setDirectoryName(IMavenProperties.MAIN_RESOURCES_LIB_PATH);
    }
 else     if (PROVIDED_LIB_FOLDER.equals(resource.getDirectoryName())) {
      resource.setDirectoryName(IMavenProperties.MAIN_RESOURCES_PROVIDED_LIB_PATH);
    }
 else     if (FileConstants.META_INF_FOLDER_NAME.equals(resource.getDirectoryName())) {
      it.remove();
      if (!resource.getAllResources().isEmpty()) {
        Set<URL> urls=resource.getAllResources().iterator().next();
        if (!urls.isEmpty()) {
          URL manifestURL=urls.iterator().next();
          getMenifestMavenProperties(manifestURL,mavenPropertiesMap);
        }
      }
    }
  }
  addSourceCodeToExport(list,processes,codeOptions);
  addMavenScriptToExport(list,processes,mavenPropertiesMap);
  return list;
}