Program: 187123
Project: 187123
Buggy source:
private boolean handleFile(File tempFile){
  File appendedFile=null;
  File actualFile=new File(tempFile.getPath().substring(0,tempFile.getPath().lastIndexOf("String_Node_Str")));
  Timber.d("String_Node_Str" + actualFile.getAbsolutePath());
  long fileSize=0;
  if (tempFile.getName().contains(scal.io.liger.Constants.MAIN)) {
    fileSize=indexItem.getExpansionFileSize();
  }
 else   if (tempFile.getName().contains(scal.io.liger.Constants.PATCH)) {
    fileSize=indexItem.getPatchFileSize();
  }
 else {
    Timber.e("String_Node_Str" + tempFile.getName() + "String_Node_Str");
    return false;
  }
  if (tempFile.exists()) {
    if (tempFile.length() == 0) {
      Timber.e("String_Node_Str" + tempFile.getPath() + "String_Node_Str");
      return false;
    }
 else     if (tempFile.length() < fileSize) {
      Timber.e("String_Node_Str" + tempFile.getPath() + "String_Node_Str"+ Long.toString(tempFile.length())+ "String_Node_Str"+ Long.toString(fileSize));
      appendedFile=managePartialFile(tempFile);
      if (appendedFile == null) {
        Timber.e("String_Node_Str" + tempFile.getPath());
        return false;
      }
 else       if (appendedFile.length() < fileSize) {
        Timber.e("String_Node_Str" + appendedFile.getPath() + "String_Node_Str"+ Long.toString(appendedFile.length())+ "String_Node_Str"+ Long.toString(fileSize));
        return false;
      }
 else {
        Timber.d("String_Node_Str" + appendedFile.getPath() + "String_Node_Str");
      }
    }
 else {
      Timber.d("String_Node_Str" + tempFile.getPath() + "String_Node_Str");
      Utils.toastOnUiThread((Activity)context,context.getString(R.string.finished_downloading) + "String_Node_Str" + indexItem.getTitle()+ "String_Node_Str",false);
      sendDownloadCompleteMessage(indexItem.getExpansionId());
    }
  }
 else {
    Timber.e("String_Node_Str" + tempFile.getPath() + "String_Node_Str");
    return false;
  }
  try {
    File directory=new File(actualFile.getParent());
    String nameFilter="String_Node_Str";
    if (actualFile.getName().contains(indexItem.getExpansionFileVersion())) {
      nameFilter=actualFile.getName().replace(indexItem.getExpansionFileVersion(),"String_Node_Str");
    }
 else {
      nameFilter=actualFile.getName();
    }
    Timber.d("String_Node_Str" + nameFilter + "String_Node_Str"+ directory.getPath());
    WildcardFileFilter oldFileFilter=new WildcardFileFilter(nameFilter);
    for (    File oldFile : FileUtils.listFiles(directory,oldFileFilter,null)) {
      Timber.d("String_Node_Str" + oldFile.getPath() + "String_Node_Str");
      FileUtils.deleteQuietly(oldFile);
    }
    if ((appendedFile != null) && appendedFile.exists()) {
      FileUtils.moveFile(appendedFile,actualFile);
      FileUtils.deleteQuietly(appendedFile);
      FileUtils.deleteQuietly(tempFile);
      Timber.d("String_Node_Str" + appendedFile.getPath() + "String_Node_Str"+ actualFile.getPath());
    }
 else     if (tempFile.exists()) {
      FileUtils.moveFile(tempFile,actualFile);
      FileUtils.deleteQuietly(tempFile);
      Timber.d("String_Node_Str" + tempFile.getPath() + "String_Node_Str"+ actualFile.getPath());
    }
 else {
      Timber.e("String_Node_Str" + tempFile.getPath());
      return false;
    }
  }
 catch (  IOException ioe) {
    Timber.e("String_Node_Str" + ioe.getMessage());
    return false;
  }
  ZipHelper.clearCache();
  return true;
}

Fixed version (ground truth):
private boolean handleFile(File tempFile){
  File appendedFile=null;
  File actualFile=new File(tempFile.getPath().substring(0,tempFile.getPath().lastIndexOf("String_Node_Str")));
  Timber.d("String_Node_Str" + actualFile.getAbsolutePath());
  long fileSize=0;
  if (tempFile.getName().contains(scal.io.liger.Constants.MAIN)) {
    fileSize=indexItem.getExpansionFileSize();
  }
 else   if (tempFile.getName().contains(scal.io.liger.Constants.PATCH)) {
    fileSize=indexItem.getPatchFileSize();
  }
 else {
    Timber.e("String_Node_Str" + tempFile.getName() + "String_Node_Str");
    return false;
  }
  if (tempFile.exists()) {
    if (tempFile.length() == 0) {
      Timber.e("String_Node_Str" + tempFile.getPath() + "String_Node_Str");
      return false;
    }
 else     if (tempFile.length() < fileSize) {
      Timber.e("String_Node_Str" + tempFile.getPath() + "String_Node_Str"+ Long.toString(tempFile.length())+ "String_Node_Str"+ Long.toString(fileSize));
      appendedFile=managePartialFile(tempFile);
      if (appendedFile == null) {
        Timber.e("String_Node_Str" + tempFile.getPath());
        return false;
      }
 else       if (appendedFile.length() < fileSize) {
        Timber.e("String_Node_Str" + appendedFile.getPath() + "String_Node_Str"+ Long.toString(appendedFile.length())+ "String_Node_Str"+ Long.toString(fileSize));
        return false;
      }
 else {
        Timber.d("String_Node_Str" + appendedFile.getPath() + "String_Node_Str");
        Utils.toastOnUiThread((Activity)context,context.getString(R.string.finished_downloading) + "String_Node_Str" + indexItem.getTitle()+ "String_Node_Str",false);
        sendDownloadCompleteMessage(indexItem.getExpansionId());
      }
    }
 else {
      Timber.d("String_Node_Str" + tempFile.getPath() + "String_Node_Str");
      Utils.toastOnUiThread((Activity)context,context.getString(R.string.finished_downloading) + "String_Node_Str" + indexItem.getTitle()+ "String_Node_Str",false);
      sendDownloadCompleteMessage(indexItem.getExpansionId());
    }
  }
 else {
    Timber.e("String_Node_Str" + tempFile.getPath() + "String_Node_Str");
    return false;
  }
  try {
    File directory=new File(actualFile.getParent());
    String nameFilter="String_Node_Str";
    if (actualFile.getName().contains(indexItem.getExpansionFileVersion())) {
      nameFilter=actualFile.getName().replace(indexItem.getExpansionFileVersion(),"String_Node_Str");
    }
 else {
      nameFilter=actualFile.getName();
    }
    Timber.d("String_Node_Str" + nameFilter + "String_Node_Str"+ directory.getPath());
    WildcardFileFilter oldFileFilter=new WildcardFileFilter(nameFilter);
    for (    File oldFile : FileUtils.listFiles(directory,oldFileFilter,null)) {
      Timber.d("String_Node_Str" + oldFile.getPath() + "String_Node_Str");
      FileUtils.deleteQuietly(oldFile);
    }
    if ((appendedFile != null) && appendedFile.exists()) {
      FileUtils.moveFile(appendedFile,actualFile);
      FileUtils.deleteQuietly(appendedFile);
      FileUtils.deleteQuietly(tempFile);
      Timber.d("String_Node_Str" + appendedFile.getPath() + "String_Node_Str"+ actualFile.getPath());
    }
 else     if (tempFile.exists()) {
      FileUtils.moveFile(tempFile,actualFile);
      FileUtils.deleteQuietly(tempFile);
      Timber.d("String_Node_Str" + tempFile.getPath() + "String_Node_Str"+ actualFile.getPath());
    }
 else {
      Timber.e("String_Node_Str" + tempFile.getPath());
      return false;
    }
  }
 catch (  IOException ioe) {
    Timber.e("String_Node_Str" + ioe.getMessage());
    return false;
  }
  ZipHelper.clearCache();
  return true;
}