Program: 5354
Project: 5354
Buggy source:
@Override public ProgramController run(final Program program,ProgramOptions options){
  ApplicationSpecification appSpec=program.getApplicationSpecification();
  Preconditions.checkNotNull(appSpec,"String_Node_Str");
  ProgramType processorType=program.getType();
  Preconditions.checkNotNull(processorType,"String_Node_Str");
  Preconditions.checkArgument(processorType == ProgramType.MAPREDUCE,"String_Node_Str");
  MapReduceSpecification spec=appSpec.getMapReduce().get(program.getName());
  Preconditions.checkNotNull(spec,"String_Node_Str",program.getName());
  Arguments arguments=options.getArguments();
  RunId runId=ProgramRunners.getRunId(options);
  WorkflowProgramInfo workflowInfo=WorkflowProgramInfo.create(arguments);
  DatasetFramework programDatasetFramework=workflowInfo == null ? datasetFramework : NameMappedDatasetFramework.createFromWorkflowProgramInfo(datasetFramework,workflowInfo,appSpec);
  if (programDatasetFramework instanceof ProgramContextAware) {
    ProgramId programId=program.getId();
    ((ProgramContextAware)programDatasetFramework).initContext(programId.run(runId));
  }
  MapReduce mapReduce;
  try {
    mapReduce=new InstantiatorFactory(false).get(TypeToken.of(program.<MapReduce>getMainClass())).create();
  }
 catch (  Exception e) {
    LOG.error("String_Node_Str",spec.getClassName(),e);
    throw Throwables.propagate(e);
  }
  List<Closeable> closeables=new ArrayList<>();
  try {
    PluginInstantiator pluginInstantiator=createPluginInstantiator(options,program.getClassLoader());
    if (pluginInstantiator != null) {
      closeables.add(pluginInstantiator);
    }
    final BasicMapReduceContext context=new BasicMapReduceContext(program,options,cConf,spec,workflowInfo,discoveryServiceClient,metricsCollectionService,txSystemClient,programDatasetFramework,streamAdmin,getPluginArchive(options),pluginInstantiator,secureStore,secureStoreManager,messagingService);
    Reflections.visit(mapReduce,mapReduce.getClass(),new PropertyFieldSetter(context.getSpecification().getProperties()),new MetricsFieldSetter(context.getMetrics()),new DataSetFieldSetter(context));
    LoggingContextAccessor.setLoggingContext(context.getLoggingContext());
    final Service mapReduceRuntimeService=new MapReduceRuntimeService(injector,cConf,hConf,mapReduce,spec,context,program.getJarLocation(),locationFactory,streamAdmin,txSystemClient,authorizationEnforcer,authenticationContext);
    mapReduceRuntimeService.addListener(createRuntimeServiceListener(program.getId(),runId,closeables,arguments,options.getUserArguments()),Threads.SAME_THREAD_EXECUTOR);
    final ProgramController controller=new MapReduceProgramController(mapReduceRuntimeService,context);
    LOG.info("String_Node_Str",context.toString());
    if (MapReduceTaskContextProvider.isLocal(hConf) || UserGroupInformation.isSecurityEnabled()) {
      mapReduceRuntimeService.start();
    }
 else {
      ProgramRunners.startAsUser(cConf.get(Constants.CFG_HDFS_USER),mapReduceRuntimeService);
    }
    return controller;
  }
 catch (  Exception e) {
    closeAllQuietly(closeables);
    throw Throwables.propagate(e);
  }
}

Fixed version (ground truth):
@Override public ProgramController run(final Program program,ProgramOptions options){
  ApplicationSpecification appSpec=program.getApplicationSpecification();
  Preconditions.checkNotNull(appSpec,"String_Node_Str");
  ProgramType processorType=program.getType();
  Preconditions.checkNotNull(processorType,"String_Node_Str");
  Preconditions.checkArgument(processorType == ProgramType.MAPREDUCE,"String_Node_Str");
  MapReduceSpecification spec=appSpec.getMapReduce().get(program.getName());
  Preconditions.checkNotNull(spec,"String_Node_Str",program.getName());
  Arguments arguments=options.getArguments();
  RunId runId=ProgramRunners.getRunId(options);
  WorkflowProgramInfo workflowInfo=WorkflowProgramInfo.create(arguments);
  DatasetFramework programDatasetFramework=workflowInfo == null ? datasetFramework : NameMappedDatasetFramework.createFromWorkflowProgramInfo(datasetFramework,workflowInfo,appSpec);
  if (programDatasetFramework instanceof ProgramContextAware) {
    ProgramId programId=program.getId();
    ((ProgramContextAware)programDatasetFramework).initContext(programId.run(runId));
  }
  MapReduce mapReduce;
  try {
    mapReduce=new InstantiatorFactory(false).get(TypeToken.of(program.<MapReduce>getMainClass())).create();
  }
 catch (  Exception e) {
    LOG.error("String_Node_Str",spec.getClassName(),e);
    throw Throwables.propagate(e);
  }
  List<Closeable> closeables=new ArrayList<>();
  try {
    PluginInstantiator pluginInstantiator=createPluginInstantiator(options,program.getClassLoader());
    if (pluginInstantiator != null) {
      closeables.add(pluginInstantiator);
    }
    final BasicMapReduceContext context=new BasicMapReduceContext(program,options,cConf,spec,workflowInfo,discoveryServiceClient,metricsCollectionService,txSystemClient,programDatasetFramework,streamAdmin,getPluginArchive(options),pluginInstantiator,secureStore,secureStoreManager,messagingService);
    Reflections.visit(mapReduce,mapReduce.getClass(),new PropertyFieldSetter(context.getSpecification().getProperties()),new MetricsFieldSetter(context.getMetrics()),new DataSetFieldSetter(context));
    LoggingContextAccessor.setLoggingContext(context.getLoggingContext());
    Service mapReduceRuntimeService=new MapReduceRuntimeService(injector,cConf,hConf,mapReduce,spec,context,program.getJarLocation(),locationFactory,streamAdmin,txSystemClient,authorizationEnforcer,authenticationContext);
    mapReduceRuntimeService.addListener(createRuntimeServiceListener(program.getId(),runId,closeables,arguments,options.getUserArguments()),Threads.SAME_THREAD_EXECUTOR);
    final ProgramController controller=new MapReduceProgramController(mapReduceRuntimeService,context);
    LOG.info("String_Node_Str",context.toString());
    if (MapReduceTaskContextProvider.isLocal(hConf) || UserGroupInformation.isSecurityEnabled()) {
      mapReduceRuntimeService.start();
    }
 else {
      ProgramRunners.startAsUser(cConf.get(Constants.CFG_HDFS_USER),mapReduceRuntimeService);
    }
    return controller;
  }
 catch (  Exception e) {
    closeAllQuietly(closeables);
    throw Throwables.propagate(e);
  }
}