Program: 96429
Project: 96429
Buggy source:
protected IStatus run(final IProgressMonitor monitor){
  IStatus result=null;
  String[][] configurations=fInfo.targets;
  if (configurations == null) {
    configurations=new String[][]{{TargetPlatform.getOS(),TargetPlatform.getWS(),TargetPlatform.getOSArch(),TargetPlatform.getNL()}};
  }
  cleanupBuildRepo();
  errorMessage=null;
  try {
    monitor.beginTask("String_Node_Str",10);
    try {
      String featureID="String_Node_Str";
      featureLocation=fBuildTempLocation + File.separator + featureID;
      createFeature(featureID,featureLocation,configurations,product.includeLaunchers());
      createBuildPropertiesFile(featureLocation,configurations);
      doExport(featureID,null,featureLocation,configurations,new SubProgressMonitor(monitor,8));
    }
 catch (    final IOException e) {
      PDECore.log(e);
    }
catch (    final InvocationTargetException e) {
      String problemMessage=Messages.FeatureBasedExportOperation_ProblemDuringExport;
      result=new Status(IStatus.ERROR,PDECore.PLUGIN_ID,problemMessage,e.getTargetException());
    }
catch (    final CoreException e) {
      if (errorMessage != null) {
        result=parseErrorMessage(e);
      }
 else {
        result=e.getStatus();
      }
    }
 finally {
      for (int j=0; j < fInfo.items.length; j++) {
        try {
          deleteBuildFiles(fInfo.items[j]);
        }
 catch (        CoreException e) {
          PDECore.log(e);
        }
      }
      cleanup(null,new SubProgressMonitor(monitor,1));
    }
    if (hasAntErrors()) {
      String compilationErrors=Messages.FeatureExportOperation_CompilationErrors;
      String bind=NLS.bind(compilationErrors,fInfo.destinationDirectory);
      result=new Status(IStatus.WARNING,PDECore.PLUGIN_ID,bind);
    }
  }
  finally {
    monitor.done();
    errorMessage=null;
  }
  if (result == null) {
    result=Status.OK_STATUS;
  }
  return result;
}

Fixed version (ground truth):
protected IStatus run(final IProgressMonitor monitor){
  IStatus result=null;
  String[][] configurations=fInfo.targets;
  if (configurations == null) {
    configurations=new String[][]{{TargetPlatform.getOS(),TargetPlatform.getWS(),TargetPlatform.getOSArch(),TargetPlatform.getNL()}};
  }
  cleanupBuildRepo();
  errorMessage=null;
  try {
    monitor.beginTask("String_Node_Str",10);
    try {
      String featureID="String_Node_Str";
      String featureLocation=fBuildTempLocation + File.separator + featureID;
      createFeature(featureID,featureLocation,configurations,product.includeLaunchers());
      createBuildPropertiesFile(featureLocation,configurations);
      doExport(featureID,null,featureLocation,configurations,new SubProgressMonitor(monitor,8));
    }
 catch (    final IOException e) {
      PDECore.log(e);
    }
catch (    final InvocationTargetException e) {
      String problemMessage=Messages.FeatureBasedExportOperation_ProblemDuringExport;
      result=new Status(IStatus.ERROR,PDECore.PLUGIN_ID,problemMessage,e.getTargetException());
    }
catch (    final CoreException e) {
      if (errorMessage != null) {
        result=parseErrorMessage(e);
      }
 else {
        result=e.getStatus();
      }
    }
 finally {
      for (int j=0; j < fInfo.items.length; j++) {
        try {
          deleteBuildFiles(fInfo.items[j]);
        }
 catch (        CoreException e) {
          PDECore.log(e);
        }
      }
      cleanup(null,new SubProgressMonitor(monitor,1));
    }
    if (hasAntErrors()) {
      String compilationErrors=Messages.FeatureExportOperation_CompilationErrors;
      String bind=NLS.bind(compilationErrors,fInfo.destinationDirectory);
      result=new Status(IStatus.WARNING,PDECore.PLUGIN_ID,bind);
    }
  }
  finally {
    monitor.done();
    errorMessage=null;
  }
  if (result == null) {
    result=Status.OK_STATUS;
  }
  return result;
}