Program: 68054
Project: 68054
Buggy source:
public boolean performFinish(){
  final IPath containerName=newReportFileWizardPage.getContainerFullPath();
  String fn=newReportFileWizardPage.getFileName();
  final String fileName;
  if (!Platform.getOS().equals(Platform.WS_WIN32)) {
    if (!fn.endsWith("String_Node_Str" + fileExtension)) {
      fileName=fn + "String_Node_Str" + fileExtension;
    }
 else {
      fileName=fn;
    }
  }
 else {
    if (!fn.toLowerCase(Locale.getDefault()).endsWith("String_Node_Str" + fileExtension)) {
      fileName=fn + "String_Node_Str" + fileExtension;
    }
 else {
      fileName=fn;
    }
  }
  String cheatSheetIdFromPage="String_Node_Str";
  boolean showCheatSheetFromPage=false;
  ReportDesignHandle selTemplate=templateChoicePage.getTemplate();
  final String templateName=selTemplate.getFileName();
  cheatSheetIdFromPage=templateChoicePage.getTemplate().getCheatSheet();
  if (cheatSheetIdFromPage == null) {
    cheatSheetIdFromPage="String_Node_Str";
  }
  showCheatSheetFromPage=templateChoicePage.getShowCheatSheet();
  final String cheatSheetId=cheatSheetIdFromPage;
  final boolean showCheatSheet=showCheatSheetFromPage;
  IRunnableWithProgress op=new IRunnableWithProgress(){
    public void run(    IProgressMonitor monitor) throws InvocationTargetException {
      try {
        doFinish(containerName,fileName,templateName,cheatSheetId,showCheatSheet,monitor);
      }
 catch (      CoreException e) {
        throw new InvocationTargetException(e);
      }
 finally {
        monitor.done();
      }
    }
  }
;
  try {
    getContainer().run(true,false,op);
  }
 catch (  InterruptedException e) {
    return false;
  }
catch (  InvocationTargetException e) {
    Throwable realException=e.getTargetException();
    ExceptionUtil.handle(realException);
    return false;
  }
  return true;
}

Fixed version (ground truth):
public boolean performFinish(){
  final IPath containerName=newReportFileWizardPage.getContainerFullPath();
  String fn=newReportFileWizardPage.getFileName();
  final String fileName;
  if (!Platform.getOS().equals(Platform.WS_WIN32)) {
    if (!fn.endsWith("String_Node_Str" + fileExtension)) {
      fileName=fn + "String_Node_Str" + fileExtension;
    }
 else {
      fileName=fn;
    }
  }
 else {
    if (!fn.toLowerCase(Locale.getDefault()).endsWith("String_Node_Str" + fileExtension)) {
      fileName=fn + "String_Node_Str" + fileExtension;
    }
 else {
      fileName=fn;
    }
  }
  String cheatSheetIdFromPage="String_Node_Str";
  boolean showCheatSheetFromPage=false;
  final ReportDesignHandle selTemplate=templateChoicePage.getTemplate();
  final String templateName=selTemplate.getFileName();
  cheatSheetIdFromPage=templateChoicePage.getTemplate().getCheatSheet();
  if (cheatSheetIdFromPage == null) {
    cheatSheetIdFromPage="String_Node_Str";
  }
  showCheatSheetFromPage=templateChoicePage.getShowCheatSheet();
  final String cheatSheetId=cheatSheetIdFromPage;
  final boolean showCheatSheet=showCheatSheetFromPage;
  IRunnableWithProgress op=new IRunnableWithProgress(){
    public void run(    IProgressMonitor monitor) throws InvocationTargetException {
      try {
        doFinish(containerName,fileName,templateName,resolveRemoteStream(templateName,selTemplate),cheatSheetId,showCheatSheet,monitor);
      }
 catch (      CoreException e) {
        throw new InvocationTargetException(e);
      }
 finally {
        monitor.done();
      }
    }
  }
;
  try {
    getContainer().run(true,false,op);
  }
 catch (  InterruptedException e) {
    return false;
  }
catch (  InvocationTargetException e) {
    Throwable realException=e.getTargetException();
    ExceptionUtil.handle(realException);
    return false;
  }
  return true;
}