Program: 118956
Project: 118956
Buggy source:
/** 
 * The Finish button was pressed. Try to do the required work now and answer a boolean indicating success. If false is returned then the wizard will not close.
 * @returns boolean
 */
@Override public boolean finish(){
  if (treeViewer != null) {
    treeViewer.removeCheckStateListener(checkStateListener);
  }
  saveWidgetValues();
  if (!ensureTargetIsValid()) {
    return false;
  }
  if (ensureLog4jSettingIsValid()) {
    MessageDialog dialog=new MessageDialog(getShell(),"String_Node_Str",null,Messages.getString("String_Node_Str"),MessageDialog.QUESTION,new String[]{IDialogConstants.YES_LABEL,IDialogConstants.NO_LABEL},0);
    dialog.open();
    int result=dialog.getReturnCode();
    if (result != MessageDialog.OK) {
      return false;
    }
  }
  JobExportType jobExportType=getCurrentExportType1();
  if (JobExportType.POJO.equals(jobExportType)) {
    IRunnableWithProgress worker=new IRunnableWithProgress(){
      @Override public void run(      IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
        buildJobWithMaven(JobExportType.POJO,monitor);
      }
    }
;
    try {
      getContainer().run(false,true,worker);
    }
 catch (    InvocationTargetException e) {
      MessageBoxExceptionHandler.process(e.getCause(),getShell());
      return false;
    }
catch (    InterruptedException e) {
      return false;
    }
  }
 else {
    List<ContextParameterType> contextEditableResultValuesList=null;
    if (manager != null) {
      contextEditableResultValuesList=manager.getContextEditableResultValuesList();
    }
    manager=createJobScriptsManager();
    if (nodes.length == 1) {
      RepositoryNode node=nodes[0];
      if (node.getType() == ENodeType.SYSTEM_FOLDER) {
        manager.setTopFolderName(ProjectManager.getInstance().getCurrentProject().getLabel());
      }
 else {
        manager.setTopFolderName(getDefaultFileNameWithType());
      }
    }
 else {
      manager.setTopFolderName(getDefaultFileNameWithType());
    }
    if (contextEditableResultValuesList == null) {
      manager.setContextEditableResultValuesList(new ArrayList<ContextParameterType>());
    }
 else {
      manager.setContextEditableResultValuesList(contextEditableResultValuesList);
    }
    manager.setMultiNodes(isMultiNodes());
    IRunnableWithProgress worker=new JobExportAction(Arrays.asList(getCheckNodes()),getSelectedJobVersion(),manager,originalRootFolderName,getProcessType());
    try {
      getContainer().run(false,true,worker);
    }
 catch (    InvocationTargetException e) {
      MessageBoxExceptionHandler.process(e.getCause(),getShell());
      return false;
    }
catch (    InterruptedException e) {
      return false;
    }
  }
  if (zipOption != null && zipOption.equals("String_Node_Str")) {
    try {
      String zipFile=manager.getDestinationPath();
      File file=new File(zipFile);
      if (file.exists()) {
        ZipToFile.unZipFile(zipFile,file.getParentFile().getAbsolutePath());
      }
    }
 catch (    Exception e) {
      MessageBoxExceptionHandler.process(e,getShell());
      return false;
    }
  }
  if (treeViewer != null) {
    treeViewer.dispose();
  }
  return true;
}

Fixed version (ground truth):
/** 
 * The Finish button was pressed. Try to do the required work now and answer a boolean indicating success. If false is returned then the wizard will not close.
 * @returns boolean
 */
@Override public boolean finish(){
  if (treeViewer != null) {
    treeViewer.removeCheckStateListener(checkStateListener);
  }
  saveWidgetValues();
  if (!ensureTargetIsValid()) {
    return false;
  }
  if (ensureLog4jSettingIsValid()) {
    MessageDialog dialog=new MessageDialog(getShell(),"String_Node_Str",null,Messages.getString("String_Node_Str"),MessageDialog.QUESTION,new String[]{IDialogConstants.YES_LABEL,IDialogConstants.NO_LABEL},0);
    dialog.open();
    int result=dialog.getReturnCode();
    if (result != MessageDialog.OK) {
      return false;
    }
  }
  JobExportType jobExportType=getCurrentExportType1();
  if (JobExportType.POJO.equals(jobExportType)) {
    IRunnableWithProgress worker=new IRunnableWithProgress(){
      @Override public void run(      IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
        buildJobWithMaven(JobExportType.POJO,monitor);
      }
    }
;
    try {
      getContainer().run(false,true,worker);
    }
 catch (    InvocationTargetException e) {
      MessageBoxExceptionHandler.process(e.getCause(),getShell());
      return false;
    }
catch (    InterruptedException e) {
      return false;
    }
  }
 else {
    List<ContextParameterType> contextEditableResultValuesList=null;
    if (manager != null) {
      contextEditableResultValuesList=manager.getContextEditableResultValuesList();
    }
    manager=createJobScriptsManager();
    if (nodes.length == 1) {
      RepositoryNode node=nodes[0];
      if (node.getType() == ENodeType.SYSTEM_FOLDER) {
        manager.setTopFolderName(ProjectManager.getInstance().getCurrentProject().getLabel());
      }
 else {
        manager.setTopFolderName(getDefaultFileNameWithType());
      }
    }
 else {
      manager.setTopFolderName(getDefaultFileNameWithType());
    }
    if (contextEditableResultValuesList == null) {
      manager.setContextEditableResultValuesList(new ArrayList<ContextParameterType>());
    }
 else {
      manager.setContextEditableResultValuesList(contextEditableResultValuesList);
    }
    manager.setMultiNodes(isMultiNodes());
    IRunnableWithProgress worker=new JobExportAction(Arrays.asList(getCheckNodes()),getSelectedJobVersion(),manager,originalRootFolderName,getProcessType());
    try {
      getContainer().run(false,true,worker);
    }
 catch (    InvocationTargetException e) {
      MessageBoxExceptionHandler.process(e.getCause(),getShell());
      return false;
    }
catch (    InterruptedException e) {
      return false;
    }
  }
  if (zipOption != null && zipOption.equals("String_Node_Str")) {
    try {
      String zipFile;
      if (manager != null) {
        zipFile=manager.getDestinationPath();
      }
 else {
        zipFile=getDestinationValue();
        int separatorIndex=zipFile.lastIndexOf(File.separator);
        if (separatorIndex == -1) {
          String userDir=System.getProperty("String_Node_Str");
          zipFile=userDir + File.separator + zipFile;
        }
      }
      File file=new File(zipFile);
      if (file.exists()) {
        ZipToFile.unZipFile(zipFile,file.getParentFile().getAbsolutePath());
      }
    }
 catch (    Exception e) {
      MessageBoxExceptionHandler.process(e,getShell());
      return false;
    }
  }
  if (treeViewer != null) {
    treeViewer.dispose();
  }
  return true;
}