Program: 121909
Project: 121909
Buggy source:
@Override public List<ExportFileResource> getExportResources(ExportFileResource[] process,String... codeOptions) throws ProcessorException {
  List<ExportFileResource> list=new ArrayList<ExportFileResource>();
  boolean needJob=true;
  boolean needSource=isOptionChoosed(ExportChoice.needSourceCode);
  boolean needContext=isOptionChoosed(ExportChoice.needContext);
  ExportFileResource libResource=new ExportFileResource(null,"String_Node_Str");
  ExportFileResource contextResource=new ExportFileResource(null,"String_Node_Str");
  ExportFileResource srcResource=new ExportFileResource(null,"String_Node_Str");
  if (needJob) {
    list.add(libResource);
  }
  if (needContext) {
    list.add(contextResource);
  }
  if (needSource) {
    list.add(srcResource);
  }
  copyServerConfigFileToTempDir();
  ProcessorUtilities.setExportConfig("String_Node_Str","String_Node_Str","String_Node_Str");
  List<URL> talendLibraries=getExternalLibraries(true,process);
  libResource.addResources(talendLibraries);
  for (int i=0; i < process.length; i++) {
    ProcessItem processItem=(ProcessItem)process[i].getItem();
    String selectedJobVersion=processItem.getProperty().getVersion();
    if (!isMultiNodes() && this.getSelectedJobVersion() != null) {
      selectedJobVersion=this.getSelectedJobVersion();
    }
    String libPath=calculateLibraryPathFromDirectory(process[i].getDirectoryName());
    String standardJars=libPath + PATH_SEPARATOR + SYSTEMROUTINE_JAR+ ProcessorUtilities.TEMP_JAVA_CLASSPATH_SEPARATOR+ libPath+ PATH_SEPARATOR+ USERROUTINE_JAR+ ProcessorUtilities.TEMP_JAVA_CLASSPATH_SEPARATOR+ "String_Node_Str";
    ProcessorUtilities.setExportConfig("String_Node_Str",standardJars,libPath);
    if (!isOptionChoosed(ExportChoice.doNotCompileCode)) {
      generateJobFiles(processItem,contextName,selectedJobVersion,statisticPort != IProcessor.NO_STATISTICS,tracePort != IProcessor.NO_TRACES,isOptionChoosed(ExportChoice.applyToChildren),progressMonitor);
    }
    ExportFileResource wsdlFile=getWSDLFile(processItem,isOptionChoosed(ExportChoice.needWSDL),talendLibraries);
    list.add(wsdlFile);
    editWSDDFile(processItem);
    boolean needChildren=true;
    addSubJobResources(process,processItem,needChildren,exportChoice,libResource,contextResource,srcResource,selectedJobVersion);
    getContextScripts(processItem,needContext,contextResource,selectedJobVersion);
    libResource.addResources(getJobScripts(processItem,selectedJobVersion,needJob));
    addXmlMapping(process[i],isOptionChoosed(ExportChoice.needSourceCode));
  }
  ExportFileResource serverConfigFile=getServerConfigFile(isOptionChoosed(ExportChoice.needCONFIGFILE));
  list.add(serverConfigFile);
  ExportFileResource wsddFile=getWSDDFile(isOptionChoosed(ExportChoice.needWSDD));
  list.add(wsddFile);
  ExportFileResource webInfoFolder=getWebXMLFile(isOptionChoosed(ExportChoice.needWEBXML));
  list.add(webInfoFolder);
  ExportFileResource metaInfoFolder=genMetaInfoFolder(isOptionChoosed(ExportChoice.needMetaInfo));
  list.add(metaInfoFolder);
  List<URL> systemRoutineList=getSystemRoutine(process,true);
  libResource.addResources(systemRoutineList);
  List<URL> userRoutineList=getUserRoutine(process,true);
  libResource.addResources(userRoutineList);
  List<String> newAxisLib=new ArrayList<String>(axisLib);
  for (  URL libUrl : talendLibraries) {
    if (libUrl.getFile() != null) {
      newAxisLib.remove(new File(libUrl.getFile()).getName());
    }
  }
  List<URL> axisLibList=getLib(newAxisLib,isOptionChoosed(ExportChoice.needAXISLIB));
  libResource.addResources(axisLibList);
  return list;
}

Fixed version (ground truth):
@Override public List<ExportFileResource> getExportResources(ExportFileResource[] process,String... codeOptions) throws ProcessorException {
  List<ExportFileResource> list=new ArrayList<ExportFileResource>();
  boolean needJob=true;
  boolean needSource=isOptionChoosed(ExportChoice.needSourceCode);
  boolean needContext=isOptionChoosed(ExportChoice.needContext);
  ExportFileResource libResource=new ExportFileResource(null,"String_Node_Str");
  ExportFileResource contextResource=new ExportFileResource(null,"String_Node_Str");
  ExportFileResource srcResource=new ExportFileResource(null,"String_Node_Str");
  if (needJob) {
    list.add(libResource);
  }
  if (needContext) {
    list.add(contextResource);
  }
  if (needSource) {
    list.add(srcResource);
  }
  copyServerConfigFileToTempDir();
  ProcessorUtilities.setExportConfig("String_Node_Str","String_Node_Str","String_Node_Str");
  for (  ExportFileResource exportResource : process) {
    ProcessItem processItem=(ProcessItem)exportResource.getItem();
    String selectedJobVersion=processItem.getProperty().getVersion();
    if (!isMultiNodes() && this.getSelectedJobVersion() != null) {
      selectedJobVersion=this.getSelectedJobVersion();
    }
    if (!isOptionChoosed(ExportChoice.doNotCompileCode)) {
      generateJobFiles(processItem,contextName,selectedJobVersion,statisticPort != IProcessor.NO_STATISTICS,tracePort != IProcessor.NO_TRACES,isOptionChoosed(ExportChoice.applyToChildren),progressMonitor);
    }
  }
  List<URL> talendLibraries=getExternalLibraries(true,process);
  libResource.addResources(talendLibraries);
  for (  ExportFileResource proces : process) {
    ProcessItem processItem=(ProcessItem)proces.getItem();
    String selectedJobVersion=processItem.getProperty().getVersion();
    if (!isMultiNodes() && this.getSelectedJobVersion() != null) {
      selectedJobVersion=this.getSelectedJobVersion();
    }
    String libPath=calculateLibraryPathFromDirectory(proces.getDirectoryName());
    String standardJars=libPath + PATH_SEPARATOR + SYSTEMROUTINE_JAR+ ProcessorUtilities.TEMP_JAVA_CLASSPATH_SEPARATOR+ libPath+ PATH_SEPARATOR+ USERROUTINE_JAR+ ProcessorUtilities.TEMP_JAVA_CLASSPATH_SEPARATOR+ "String_Node_Str";
    ProcessorUtilities.setExportConfig("String_Node_Str",standardJars,libPath);
    ExportFileResource wsdlFile=getWSDLFile(processItem,isOptionChoosed(ExportChoice.needWSDL),talendLibraries);
    list.add(wsdlFile);
    editWSDDFile(processItem);
    boolean needChildren=true;
    addSubJobResources(process,processItem,needChildren,exportChoice,libResource,contextResource,srcResource,selectedJobVersion);
    getContextScripts(processItem,needContext,contextResource,selectedJobVersion);
    libResource.addResources(getJobScripts(processItem,selectedJobVersion,needJob));
    addXmlMapping(proces,isOptionChoosed(ExportChoice.needSourceCode));
  }
  ExportFileResource serverConfigFile=getServerConfigFile(isOptionChoosed(ExportChoice.needCONFIGFILE));
  list.add(serverConfigFile);
  ExportFileResource wsddFile=getWSDDFile(isOptionChoosed(ExportChoice.needWSDD));
  list.add(wsddFile);
  ExportFileResource webInfoFolder=getWebXMLFile(isOptionChoosed(ExportChoice.needWEBXML));
  list.add(webInfoFolder);
  ExportFileResource metaInfoFolder=genMetaInfoFolder(isOptionChoosed(ExportChoice.needMetaInfo));
  list.add(metaInfoFolder);
  List<URL> systemRoutineList=getSystemRoutine(process,true);
  libResource.addResources(systemRoutineList);
  List<URL> userRoutineList=getUserRoutine(process,true);
  libResource.addResources(userRoutineList);
  List<String> newAxisLib=new ArrayList<String>(axisLib);
  for (  URL libUrl : talendLibraries) {
    if (libUrl.getFile() != null) {
      newAxisLib.remove(new File(libUrl.getFile()).getName());
    }
  }
  List<URL> axisLibList=getLib(newAxisLib,isOptionChoosed(ExportChoice.needAXISLIB));
  libResource.addResources(axisLibList);
  return list;
}