Program: 47083
Project: 47083
Buggy source:
private ProcessWrapperImpl getFFmpegThumbnail(InputFile media,boolean resume,RendererConfiguration renderer){
  String args[]=new String[14];
  args[0]=getFfmpegPath();
  File file=media.getFile();
  boolean dvrms=file != null && file.getAbsolutePath().toLowerCase().endsWith("String_Node_Str");
  if (dvrms && isNotBlank(configuration.getFfmpegAlternativePath())) {
    args[0]=configuration.getFfmpegAlternativePath();
  }
  args[1]="String_Node_Str";
  if (resume) {
    args[2]="String_Node_Str" + (int)getDurationInSeconds();
  }
 else {
    args[2]="String_Node_Str" + configuration.getThumbnailSeekPos();
  }
  args[3]="String_Node_Str";
  if (file != null) {
    args[4]=ProcessUtil.getShortFileNameIfWideChars(file.getAbsolutePath());
  }
 else {
    args[4]="String_Node_Str";
  }
  args[5]="String_Node_Str";
  args[6]="String_Node_Str";
  int thumbnailWidth=320;
  int thumbnailHeight=180;
  double thumbnailRatio=1.78;
  boolean isThumbnailPadding=true;
  if (renderer != null) {
    thumbnailWidth=renderer.getThumbnailWidth();
    thumbnailHeight=renderer.getThumbnailHeight();
    thumbnailRatio=renderer.getThumbnailRatio();
    isThumbnailPadding=renderer.isThumbnailPadding();
  }
  if (isThumbnailPadding) {
    args[7]="String_Node_Str";
    args[8]="String_Node_Str" + thumbnailRatio + "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailRatio+ "String_Node_Str"+ thumbnailHeight+ "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailHeight+ "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailHeight+ "String_Node_Str";
  }
 else {
    args[7]="String_Node_Str";
    args[8]="String_Node_Str" + thumbnailRatio + "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailRatio+ "String_Node_Str"+ thumbnailHeight+ "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";
  if (!configuration.isThumbnailGenerationEnabled() || !renderer.isThumbnails() || (configuration.isUseMplayerForVideoThumbs() && !dvrms)) {
    args[2]="String_Node_Str";
    for (int i=5; i <= 13; 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);
synchronized (parsingLock) {
    parsing=true;
  }
  Runnable r=new Runnable(){
    @Override public void run(){
      try {
        Thread.sleep(10000);
synchronized (ffmpeg_failureLock) {
          ffmpeg_failure=true;
        }
      }
 catch (      InterruptedException e) {
      }
      pw.stopProcess();
synchronized (parsingLock) {
        parsing=false;
      }
    }
  }
;
  Thread failsafe=new Thread(r,"String_Node_Str");
  failsafe.start();
  pw.runInSameThread();
synchronized (parsingLock) {
    parsing=false;
  }
  return pw;
}

Fixed version (ground truth):
private ProcessWrapperImpl getFFmpegThumbnail(InputFile media,boolean resume,RendererConfiguration renderer){
  String args[]=new String[14];
  args[0]=getFfmpegPath();
  File file=media.getFile();
  boolean dvrms=file != null && file.getAbsolutePath().toLowerCase().endsWith("String_Node_Str");
  if (dvrms && isNotBlank(configuration.getFfmpegAlternativePath())) {
    args[0]=configuration.getFfmpegAlternativePath();
  }
  args[1]="String_Node_Str";
  if (resume) {
    args[2]=Integer.toString((int)getDurationInSeconds());
  }
 else {
    args[2]=Integer.toString((int)Math.min(configuration.getThumbnailSeekPos(),getDurationInSeconds()));
  }
  args[3]="String_Node_Str";
  if (file != null) {
    args[4]=ProcessUtil.getShortFileNameIfWideChars(file.getAbsolutePath());
  }
 else {
    args[4]="String_Node_Str";
  }
  args[5]="String_Node_Str";
  args[6]="String_Node_Str";
  int thumbnailWidth=320;
  int thumbnailHeight=180;
  double thumbnailRatio=1.78;
  boolean isThumbnailPadding=true;
  if (renderer != null) {
    thumbnailWidth=renderer.getThumbnailWidth();
    thumbnailHeight=renderer.getThumbnailHeight();
    thumbnailRatio=renderer.getThumbnailRatio();
    isThumbnailPadding=renderer.isThumbnailPadding();
  }
  if (isThumbnailPadding) {
    args[7]="String_Node_Str";
    args[8]="String_Node_Str" + thumbnailRatio + "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailRatio+ "String_Node_Str"+ thumbnailHeight+ "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailHeight+ "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailHeight+ "String_Node_Str";
  }
 else {
    args[7]="String_Node_Str";
    args[8]="String_Node_Str" + thumbnailRatio + "String_Node_Str"+ thumbnailWidth+ "String_Node_Str"+ thumbnailRatio+ "String_Node_Str"+ thumbnailHeight+ "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";
  if (!configuration.isThumbnailGenerationEnabled() || !renderer.isThumbnails() || (configuration.isUseMplayerForVideoThumbs() && !dvrms)) {
    args[2]="String_Node_Str";
    for (int i=5; i <= 13; 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);
synchronized (parsingLock) {
    parsing=true;
  }
  Runnable r=new Runnable(){
    @Override public void run(){
      try {
        Thread.sleep(10000);
synchronized (ffmpeg_failureLock) {
          ffmpeg_failure=true;
        }
      }
 catch (      InterruptedException e) {
      }
      pw.stopProcess();
synchronized (parsingLock) {
        parsing=false;
      }
    }
  }
;
  Thread failsafe=new Thread(r,"String_Node_Str");
  failsafe.start();
  pw.runInSameThread();
synchronized (parsingLock) {
    parsing=false;
  }
  return pw;
}