Program: 141194
Project: 141194
Buggy source:
/** 
 * Create a step for a standard step.
 * @param workflow workflow of the step
 * @param id identifier of the step
 * @param step Step object
 * @param skip true to skip execution of the step
 * @param copyResultsToOutput copy step result to output directory
 * @param parameters parameters of the step
 * @throws EoulsanException id an error occurs while creating the step
 */
protected AbstractWorkflowStep(final AbstractWorkflow workflow,final String id,final String stepName,final boolean skip,final boolean copyResultsToOutput,final DataFile workingDir,final Set<Parameter> parameters) throws EoulsanException {
  Preconditions.checkNotNull(workflow,"String_Node_Str");
  Preconditions.checkNotNull(id,"String_Node_Str");
  Preconditions.checkNotNull(stepName,"String_Node_Str");
  Preconditions.checkNotNull(workingDir,"String_Node_Str");
  Preconditions.checkNotNull(parameters,"String_Node_Str");
  if (!(workingDir.equals(workflow.getOutputDir()) || workingDir.equals(workflow.getLocalWorkingDir()) || workingDir.equals(workflow.getHadoopWorkingDir()))) {
    throw new IllegalArgumentException("String_Node_Str" + workingDir);
  }
  this.workflow=workflow;
  this.stepContext=new WorkflowStepContext(workflow.getWorkflowContext(),this);
  this.id=id;
  this.skip=skip;
  this.type=StepType.STANDARD_STEP;
  this.stepName=stepName;
  this.copyResultsToOutput=copyResultsToOutput;
  final Step step=StepInstances.getInstance().getStep(this,stepName);
  this.mode=EoulsanMode.getEoulsanMode(step.getClass());
  this.parameters=Sets.newLinkedHashSet(parameters);
  this.terminalStep=step.isTerminalStep();
  this.createLogFiles=step.isCreateLogFiles();
  this.workingDir=workingDir;
  this.workflow.register(this);
}

Fixed version (ground truth):
/** 
 * Create a step for a standard step.
 * @param workflow workflow of the step
 * @param id identifier of the step
 * @param step Step object
 * @param skip true to skip execution of the step
 * @param copyResultsToOutput copy step result to output directory
 * @param parameters parameters of the step
 * @throws EoulsanException id an error occurs while creating the step
 */
protected AbstractWorkflowStep(final AbstractWorkflow workflow,final String id,final String stepName,final boolean skip,final boolean copyResultsToOutput,final DataFile workingDir,final Set<Parameter> parameters) throws EoulsanException {
  Preconditions.checkNotNull(workflow,"String_Node_Str");
  Preconditions.checkNotNull(id,"String_Node_Str");
  Preconditions.checkNotNull(stepName,"String_Node_Str");
  Preconditions.checkNotNull(workingDir,"String_Node_Str");
  Preconditions.checkNotNull(parameters,"String_Node_Str");
  if (!(workingDir.equals(workflow.getOutputDir()) || workingDir.equals(workflow.getLocalWorkingDir()) || workingDir.equals(workflow.getHadoopWorkingDir()))) {
    throw new IllegalArgumentException("String_Node_Str" + workingDir);
  }
  this.workflow=workflow;
  this.stepContext=new WorkflowStepContext(workflow.getWorkflowContext(),this);
  this.number=instanceCounter++;
  this.id=id;
  this.skip=skip;
  this.type=StepType.STANDARD_STEP;
  this.stepName=stepName;
  this.copyResultsToOutput=copyResultsToOutput;
  final Step step=StepInstances.getInstance().getStep(this,stepName);
  this.mode=EoulsanMode.getEoulsanMode(step.getClass());
  this.parameters=Sets.newLinkedHashSet(parameters);
  this.terminalStep=step.isTerminalStep();
  this.createLogFiles=step.isCreateLogFiles();
  this.workingDir=workingDir;
  this.workflow.register(this);
}