Program: 4859
Project: 4859
Buggy source:
/** 
 * Creates a jar that contains everything that are needed for running the MapReduce program by Hadoop.
 * @return a new {@link File} containing the job jar
 */
private File buildJobJar(Job job,File tempDir) throws IOException, URISyntaxException {
  File jobJar=new File(tempDir,"String_Node_Str");
  LOG.debug("String_Node_Str",jobJar);
  if (MapReduceTaskContextProvider.isLocal(job.getConfiguration())) {
    JarOutputStream output=new JarOutputStream(new FileOutputStream(jobJar));
    output.close();
    return jobJar;
  }
  final HadoopClassExcluder hadoopClassExcluder=new HadoopClassExcluder();
  ApplicationBundler appBundler=new ApplicationBundler(new ClassAcceptor(){
    @Override public boolean accept(    String className,    URL classUrl,    URL classPathUrl){
      if (className.startsWith("String_Node_Str") || classPathUrl.toString().contains("String_Node_Str")) {
        return false;
      }
      return hadoopClassExcluder.accept(className,classUrl,classPathUrl);
    }
  }
);
  Set<Class<?>> classes=Sets.newHashSet();
  classes.add(MapReduce.class);
  classes.add(MapperWrapper.class);
  classes.add(ReducerWrapper.class);
  classes.add(SLF4JBridgeHandler.class);
  if (cConf.getBoolean(Constants.AppFabric.MAPREDUCE_INCLUDE_CUSTOM_CLASSES)) {
    try {
      Class<? extends InputFormat<?,?>> inputFormatClass=job.getInputFormatClass();
      classes.add(inputFormatClass);
      if (MapReduceStreamInputFormat.class.isAssignableFrom(inputFormatClass)) {
        Class<? extends StreamEventDecoder> decoderType=MapReduceStreamInputFormat.getDecoderClass(job.getConfiguration());
        if (decoderType != null) {
          classes.add(decoderType);
        }
      }
    }
 catch (    Throwable t) {
      LOG.debug("String_Node_Str",t.getMessage(),t);
    }
    try {
      Class<? extends OutputFormat<?,?>> outputFormatClass=job.getOutputFormatClass();
      classes.add(outputFormatClass);
    }
 catch (    Throwable t) {
      LOG.debug("String_Node_Str",t.getMessage(),t);
    }
  }
  if (SecureStoreUtils.isKMSBacked(cConf) && SecureStoreUtils.isKMSCapable()) {
    classes.add(SecureStoreUtils.getKMSSecureStore());
  }
  Class<? extends HBaseDDLExecutor> ddlExecutorClass=new HBaseDDLExecutorFactory(cConf,hConf).get().getClass();
  try {
    Class<?> hbaseTableUtilClass=HBaseTableUtilFactory.getHBaseTableUtilClass(cConf);
    classes.add(hbaseTableUtilClass);
    classes.add(ddlExecutorClass);
  }
 catch (  ProvisionException e) {
    LOG.warn("String_Node_Str");
  }
  ClassLoader oldCLassLoader=ClassLoaders.setContextClassLoader(new CombineClassLoader(getClass().getClassLoader(),Collections.singleton(ddlExecutorClass.getClassLoader())));
  try {
    appBundler.createBundle(Locations.toLocation(jobJar),classes);
  }
  finally {
    ClassLoaders.setContextClassLoader(oldCLassLoader);
  }
  LOG.debug("String_Node_Str",jobJar.toURI());
  return jobJar;
}

Fixed version (ground truth):
/** 
 * Creates a jar that contains everything that are needed for running the MapReduce program by Hadoop.
 * @return a new {@link File} containing the job jar
 */
private File buildJobJar(Job job,File tempDir) throws IOException, URISyntaxException {
  File jobJar=new File(tempDir,"String_Node_Str");
  LOG.debug("String_Node_Str",jobJar);
  if (MapReduceTaskContextProvider.isLocal(job.getConfiguration())) {
    JarOutputStream output=new JarOutputStream(new FileOutputStream(jobJar));
    output.close();
    return jobJar;
  }
  final HadoopClassExcluder hadoopClassExcluder=new HadoopClassExcluder();
  ApplicationBundler appBundler=new ApplicationBundler(new ClassAcceptor(){
    @Override public boolean accept(    String className,    URL classUrl,    URL classPathUrl){
      if (className.startsWith("String_Node_Str") || classPathUrl.toString().contains("String_Node_Str")) {
        return false;
      }
      return hadoopClassExcluder.accept(className,classUrl,classPathUrl);
    }
  }
);
  Set<Class<?>> classes=Sets.newHashSet();
  classes.add(MapReduce.class);
  classes.add(MapperWrapper.class);
  classes.add(ReducerWrapper.class);
  classes.add(SLF4JBridgeHandler.class);
  if (cConf.getBoolean(Constants.AppFabric.MAPREDUCE_INCLUDE_CUSTOM_CLASSES)) {
    try {
      Class<? extends InputFormat<?,?>> inputFormatClass=job.getInputFormatClass();
      classes.add(inputFormatClass);
      if (MapReduceStreamInputFormat.class.isAssignableFrom(inputFormatClass)) {
        Class<? extends StreamEventDecoder> decoderType=MapReduceStreamInputFormat.getDecoderClass(job.getConfiguration());
        if (decoderType != null) {
          classes.add(decoderType);
        }
      }
    }
 catch (    Throwable t) {
      LOG.debug("String_Node_Str",t.getMessage(),t);
    }
    try {
      Class<? extends OutputFormat<?,?>> outputFormatClass=job.getOutputFormatClass();
      classes.add(outputFormatClass);
    }
 catch (    Throwable t) {
      LOG.debug("String_Node_Str",t.getMessage(),t);
    }
  }
  if (SecureStoreUtils.isKMSBacked(cConf) && SecureStoreUtils.isKMSCapable()) {
    classes.add(SecureStoreUtils.getKMSSecureStore());
  }
  try {
    Class<?> hbaseTableUtilClass=HBaseTableUtilFactory.getHBaseTableUtilClass(cConf);
    classes.add(hbaseTableUtilClass);
  }
 catch (  ProvisionException e) {
    LOG.warn("String_Node_Str");
  }
  ClassLoader oldCLassLoader=ClassLoaders.setContextClassLoader(getClass().getClassLoader());
  try {
    appBundler.createBundle(Locations.toLocation(jobJar),classes);
  }
  finally {
    ClassLoaders.setContextClassLoader(oldCLassLoader);
  }
  LOG.debug("String_Node_Str",jobJar.toURI());
  return jobJar;
}