Program: 47237
Project: 47237
Buggy source:
private ProcessWrapperImpl getFFMpegThumbnail(InputFile media){
  String args[]=new String[16];
  args[0]=getFfmpegPath();
  File file=media.getFile();
  boolean dvrms=file != null && file.getAbsolutePath().toLowerCase().endsWith("String_Node_Str");
  if (dvrms && StringUtils.isNotBlank(configuration.getFfmpegAlternativePath())) {
    args[0]=configuration.getFfmpegAlternativePath();
  }
  args[1]="String_Node_Str";
  if (LOGGER.isTraceEnabled()) {
    args[2]="String_Node_Str";
  }
 else {
    args[2]="String_Node_Str";
  }
  args[3]="String_Node_Str";
  args[4]="String_Node_Str" + new Double(getDurationInSeconds()).intValue();
  args[5]="String_Node_Str";
  if (file != null) {
    args[6]=ProcessUtil.getShortFileNameIfWideChars(file.getAbsolutePath());
  }
 else {
    args[6]="String_Node_Str";
  }
  args[7]="String_Node_Str";
  args[8]="String_Node_Str";
  args[9]="String_Node_Str";
  args[10]="String_Node_Str";
  args[11]="String_Node_Str";
  args[12]="String_Node_Str";
  args[13]="String_Node_Str";
  args[14]="String_Node_Str";
  args[15]="String_Node_Str";
  if (!configuration.isThumbnailGenerationEnabled() || (configuration.isUseMplayerForVideoThumbs() && !dvrms)) {
    args[4]="String_Node_Str";
    for (int i=7; i <= 15; i++) {
      args[i]="String_Node_Str";
    }
  }
  OutputParams params=new OutputParams(configuration);
  params.maxBufferSize=1;
  params.stdin=media.getPush();
  params.noexitcheck=true;
  final ProcessWrapperImpl pw=new ProcessWrapperImpl(args,params,false,true);
  setParsing(true);
  Runnable r=new Runnable(){
    @Override public void run(){
      try {
        Thread.sleep(10000);
        ffmpeg_failure=true;
      }
 catch (      InterruptedException e) {
      }
      pw.stopProcess();
      setParsing(false);
    }
  }
;
  Thread failsafe=new Thread(r,"String_Node_Str");
  failsafe.start();
  pw.runInSameThread();
  setParsing(false);
  return pw;
}

Fixed version (ground truth):
private ProcessWrapperImpl getFFMpegThumbnail(InputFile media){
  String args[]=new String[16];
  args[0]=getFfmpegPath();
  File file=media.getFile();
  boolean dvrms=file != null && file.getAbsolutePath().toLowerCase().endsWith("String_Node_Str");
  if (dvrms && StringUtils.isNotBlank(configuration.getFfmpegAlternativePath())) {
    args[0]=configuration.getFfmpegAlternativePath();
  }
  args[1]="String_Node_Str";
  if (LOGGER.isTraceEnabled()) {
    args[2]="String_Node_Str";
  }
 else {
    args[2]="String_Node_Str";
  }
  args[3]="String_Node_Str";
  args[4]="String_Node_Str" + (int)getDurationInSeconds();
  args[5]="String_Node_Str";
  if (file != null) {
    args[6]=ProcessUtil.getShortFileNameIfWideChars(file.getAbsolutePath());
  }
 else {
    args[6]="String_Node_Str";
  }
  args[7]="String_Node_Str";
  args[8]="String_Node_Str";
  args[9]="String_Node_Str";
  args[10]="String_Node_Str";
  args[11]="String_Node_Str";
  args[12]="String_Node_Str";
  args[13]="String_Node_Str";
  args[14]="String_Node_Str";
  args[15]="String_Node_Str";
  if (!configuration.isThumbnailGenerationEnabled() || (configuration.isUseMplayerForVideoThumbs() && !dvrms)) {
    args[4]="String_Node_Str";
    for (int i=7; i <= 15; i++) {
      args[i]="String_Node_Str";
    }
  }
  OutputParams params=new OutputParams(configuration);
  params.maxBufferSize=1;
  params.stdin=media.getPush();
  params.noexitcheck=true;
  final ProcessWrapperImpl pw=new ProcessWrapperImpl(args,params,false,true);
  setParsing(true);
  Runnable r=new Runnable(){
    @Override public void run(){
      try {
        Thread.sleep(10000);
        ffmpeg_failure=true;
      }
 catch (      InterruptedException e) {
      }
      pw.stopProcess();
      setParsing(false);
    }
  }
;
  Thread failsafe=new Thread(r,"String_Node_Str");
  failsafe.start();
  pw.runInSameThread();
  setParsing(false);
  return pw;
}