Program: 141074
Project: 141074
Buggy source:
/** 
 * Constructor.
 * @param command command to execute
 * @param executionDirectory execution directory
 * @param stdout true if stdout will be read
 * @param redirectStderr redirect stderr to stdout
 * @param filesUsed files used by the process
 * @throws IOException if an error occurs while creating the object
 */
private DockerResult(final List<String> command,final File executionDirectory,boolean stdout,final boolean redirectStderr,File... filesUsed) throws IOException {
  checkNotNull(command,"String_Node_Str");
  try {
    pullImageIfNotExists(dockerClient,dockerImage);
    getLogger().fine("String_Node_Str" + command);
    List<File> newFilesUsed=new ArrayList<>();
    if (filesUsed != null) {
      for (      File f : filesUsed) {
        newFilesUsed.add(f);
      }
    }
    if (stdout) {
      final String uuid=UUID.randomUUID().toString();
      this.stdoutFile=new File(temporaryDirectory,"String_Node_Str" + uuid);
      FileUtils.createNamedPipe(this.stdoutFile);
      newFilesUsed.add(this.stdoutFile);
    }
 else {
      this.stdoutFile=null;
    }
    final ContainerConfig.Builder builder=ContainerConfig.builder().image(dockerImage).cmd(convertCommand(command,this.stdoutFile,redirectStderr));
    if (executionDirectory != null) {
      builder.workingDir(executionDirectory.getAbsolutePath());
      newFilesUsed.add(executionDirectory);
    }
    if (userUid >= 0 && userGid >= 0) {
      builder.user(userUid + "String_Node_Str" + userGid);
    }
    builder.hostConfig(createBinds(executionDirectory,newFilesUsed));
    final ContainerCreation creation=dockerClient.createContainer(builder.build());
    this.containerId=creation.id();
    getLogger().fine("String_Node_Str" + containerId);
    dockerClient.startContainer(containerId);
  }
 catch (  DockerException|InterruptedException e) {
    throw new IOException(e);
  }
}

Fixed version (ground truth):
/** 
 * Constructor.
 * @param command command to execute
 * @param executionDirectory execution directory
 * @param stdout true if stdout will be read
 * @param redirectStderr redirect stderr to stdout
 * @param filesUsed files used by the process
 * @throws IOException if an error occurs while creating the object
 */
private DockerResult(final List<String> command,final File executionDirectory,boolean stdout,final boolean redirectStderr,File... filesUsed) throws IOException {
  checkNotNull(command,"String_Node_Str");
  try {
    pullImageIfNotExists(dockerClient,dockerImage);
    getLogger().fine("String_Node_Str" + command);
    List<File> newFilesUsed=new ArrayList<>();
    if (filesUsed != null) {
      Collections.addAll(newFilesUsed,filesUsed);
    }
    if (stdout) {
      final String uuid=UUID.randomUUID().toString();
      this.stdoutFile=new File(temporaryDirectory,"String_Node_Str" + uuid);
      FileUtils.createNamedPipe(this.stdoutFile);
      newFilesUsed.add(this.stdoutFile);
    }
 else {
      this.stdoutFile=null;
    }
    final ContainerConfig.Builder builder=ContainerConfig.builder().image(dockerImage).cmd(convertCommand(command,this.stdoutFile,redirectStderr));
    if (executionDirectory != null) {
      builder.workingDir(executionDirectory.getAbsolutePath());
      newFilesUsed.add(executionDirectory);
    }
    if (userUid >= 0 && userGid >= 0) {
      builder.user(userUid + "String_Node_Str" + userGid);
    }
    builder.hostConfig(createBinds(executionDirectory,newFilesUsed));
    final ContainerCreation creation=dockerClient.createContainer(builder.build());
    this.containerId=creation.id();
    getLogger().fine("String_Node_Str" + containerId);
    dockerClient.startContainer(containerId);
  }
 catch (  DockerException|InterruptedException e) {
    throw new IOException(e);
  }
}