Program: 168136
Project: 168136
Buggy source:
private void addButtonsToToolBar(){
  IToolBarManager mgr=form.getToolBarManager();
  mgr.add(new Action(){
    @Override public ImageDescriptor getImageDescriptor(){
      return (RedditCrawlerViewImageRegistry.getImageIconFactory().getImageDescriptor(IMAGE_LRUN_OBJ));
    }
    @Override public String getToolTipText(){
      return "String_Node_Str";
    }
    String outputDir;
    String query;
    String title;
    String author;
    String site;
    String linkId;
    String sortType;
    String trendType;
    String labelType;
    String timeFrame;
    int limitLinks, limitComments;
    boolean search;
    boolean trendingData;
    boolean labeledData;
    boolean canProceed;
    @Override public void run(){
      final Job job=new Job("String_Node_Str"){
        @Override protected IStatus run(        IProgressMonitor monitor){
          TacitFormComposite.setConsoleViewInFocus();
          TacitFormComposite.updateStatusMessage(getViewSite(),null,null,form);
          Display.getDefault().syncExec(new Runnable(){
            @Override public void run(){
              search=crawlSearchResultsButton.getSelection();
              trendingData=crawlTrendingDataButton.getSelection();
              labeledData=crawlLabeledButton.getSelection();
              if (search) {
                query=queryText.getText();
                title=titleText.getText();
                author=authorText.getText();
                site=siteText.getText();
                linkId=linkText.getText();
                sortType=sortTypes[cmbSortType.getSelectionIndex()].toLowerCase();
                timeFrame=timeFrames[cmbTimeFrames.getSelectionIndex()].toLowerCase();
              }
 else               if (trendingData) {
                trendType=trendTypes[cmbTrendType.getSelectionIndex()].toLowerCase();
              }
 else               if (labeledData) {
                labelType=labelDataTypes[cmbLabelType.getSelectionIndex()].toLowerCase();
                timeFrame=timeFrames[cmbTimeFrames.getSelectionIndex()].toLowerCase();
              }
              limitLinks=Integer.parseInt(numLinksText.getText());
              limitComments=Integer.parseInt(numCommentsText.getText());
              outputDir=outputLayout.getOutputLabel().getText();
            }
          }
);
          int progressSize=limitLinks + 30;
          if (content.size() > 0)           progressSize=(content.size() * limitLinks) + 30;
          monitor.beginTask("String_Node_Str",progressSize);
          TacitFormComposite.writeConsoleHeaderBegining("String_Node_Str");
          final RedditCrawler rc=new RedditCrawler(outputDir,limitLinks,limitComments,monitor);
          monitor.subTask("String_Node_Str");
          monitor.worked(10);
          if (monitor.isCanceled())           handledCancelRequest("String_Node_Str");
          if (search) {
            try {
              monitor.subTask("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              rc.search(query,title,author,site,linkId,timeFrame,sortType,content);
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
            }
 catch (            Exception e) {
              return handleException(monitor,e,"String_Node_Str");
            }
          }
 else           if (trendingData) {
            try {
              monitor.subTask("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              rc.crawlTrendingData(trendType);
            }
 catch (            Exception e) {
              return handleException(monitor,e,"String_Node_Str");
            }
          }
 else           if (labeledData) {
            try {
              monitor.subTask("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              rc.crawlLabeledData(labelType,timeFrame);
            }
 catch (            Exception e) {
              return handleException(monitor,e,"String_Node_Str");
            }
          }
          if (monitor.isCanceled())           return handledCancelRequest("String_Node_Str");
          monitor.worked(100);
          monitor.done();
          ConsoleView.printlInConsoleln("String_Node_Str");
          ConsoleView.printlInConsoleln("String_Node_Str");
          TacitFormComposite.updateStatusMessage(getViewSite(),"String_Node_Str",IStatus.OK,form);
          TacitFormComposite.writeConsoleHeaderBegining("String_Node_Str");
          return Status.OK_STATUS;
        }
      }
;
      job.setUser(true);
      canProceed=canItProceed();
      if (canProceed) {
        job.schedule();
      }
    }
  }
);
  Action helpAction=new Action(){
    @Override public ImageDescriptor getImageDescriptor(){
      return (RedditCrawlerViewImageRegistry.getImageIconFactory().getImageDescriptor(IMAGE_HELP_CO));
    }
    @Override public String getToolTipText(){
      return "String_Node_Str";
    }
    @Override public void run(){
      PlatformUI.getWorkbench().getHelpSystem().displayHelp("String_Node_Str");
    }
  }
;
  mgr.add(helpAction);
  PlatformUI.getWorkbench().getHelpSystem().setHelp(helpAction,"String_Node_Str");
  PlatformUI.getWorkbench().getHelpSystem().setHelp(form,"String_Node_Str");
  form.getToolBarManager().update(true);
}

Fixed version (ground truth):
private void addButtonsToToolBar(){
  IToolBarManager mgr=form.getToolBarManager();
  mgr.add(new Action(){
    @Override public ImageDescriptor getImageDescriptor(){
      return (RedditCrawlerViewImageRegistry.getImageIconFactory().getImageDescriptor(IMAGE_LRUN_OBJ));
    }
    @Override public String getToolTipText(){
      return "String_Node_Str";
    }
    String outputDir;
    String query;
    String title;
    String author;
    String site;
    String linkId;
    String sortType;
    String trendType;
    String labelType;
    String timeFrame;
    int limitLinks, limitComments;
    boolean search;
    boolean trendingData;
    boolean labeledData;
    boolean canProceed;
    @Override public void run(){
      final Job job=new Job("String_Node_Str"){
        @Override protected IStatus run(        IProgressMonitor monitor){
          TacitFormComposite.setConsoleViewInFocus();
          TacitFormComposite.updateStatusMessage(getViewSite(),null,null,form);
          Display.getDefault().syncExec(new Runnable(){
            @Override public void run(){
              search=crawlSearchResultsButton.getSelection();
              trendingData=crawlTrendingDataButton.getSelection();
              labeledData=crawlLabeledButton.getSelection();
              if (search) {
                query=queryText.getText();
                title=titleText.getText();
                author=authorText.getText();
                site=siteText.getText();
                linkId=linkText.getText();
                sortType=sortTypes[cmbSortType.getSelectionIndex()].toLowerCase();
                timeFrame=timeFramesMap.get(cmbTimeFrames.getSelectionIndex()).toLowerCase();
              }
 else               if (trendingData) {
                trendType=trendTypes[cmbTrendType.getSelectionIndex()].toLowerCase();
              }
 else               if (labeledData) {
                labelType=labelDataTypes[cmbLabelType.getSelectionIndex()].toLowerCase();
                timeFrame=timeFramesMap.get(cmbTimeFrames.getSelectionIndex()).toLowerCase();
              }
              limitLinks=Integer.parseInt(numLinksText.getText());
              limitComments=Integer.parseInt(numCommentsText.getText());
              outputDir=outputLayout.getOutputLabel().getText();
            }
          }
);
          int progressSize=limitLinks + 30;
          if (content.size() > 0)           progressSize=(content.size() * limitLinks) + 30;
          monitor.beginTask("String_Node_Str",progressSize);
          TacitFormComposite.writeConsoleHeaderBegining("String_Node_Str");
          final RedditCrawler rc=new RedditCrawler(outputDir,limitLinks,limitComments,monitor);
          monitor.subTask("String_Node_Str");
          monitor.worked(10);
          if (monitor.isCanceled())           handledCancelRequest("String_Node_Str");
          if (search) {
            try {
              monitor.subTask("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              rc.search(query,title,author,site,linkId,timeFrame,sortType,content);
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
            }
 catch (            Exception e) {
              return handleException(monitor,e,"String_Node_Str");
            }
          }
 else           if (trendingData) {
            try {
              monitor.subTask("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              rc.crawlTrendingData(trendType);
            }
 catch (            Exception e) {
              return handleException(monitor,e,"String_Node_Str");
            }
          }
 else           if (labeledData) {
            try {
              monitor.subTask("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              if (monitor.isCanceled())               return handledCancelRequest("String_Node_Str");
              rc.crawlLabeledData(labelType,timeFrame);
            }
 catch (            Exception e) {
              return handleException(monitor,e,"String_Node_Str");
            }
          }
          if (monitor.isCanceled())           return handledCancelRequest("String_Node_Str");
          monitor.worked(100);
          monitor.done();
          ConsoleView.printlInConsoleln("String_Node_Str");
          ConsoleView.printlInConsoleln("String_Node_Str");
          TacitFormComposite.updateStatusMessage(getViewSite(),"String_Node_Str",IStatus.OK,form);
          TacitFormComposite.writeConsoleHeaderBegining("String_Node_Str");
          return Status.OK_STATUS;
        }
      }
;
      job.setUser(true);
      canProceed=canItProceed();
      if (canProceed) {
        job.schedule();
      }
    }
  }
);
  Action helpAction=new Action(){
    @Override public ImageDescriptor getImageDescriptor(){
      return (RedditCrawlerViewImageRegistry.getImageIconFactory().getImageDescriptor(IMAGE_HELP_CO));
    }
    @Override public String getToolTipText(){
      return "String_Node_Str";
    }
    @Override public void run(){
      PlatformUI.getWorkbench().getHelpSystem().displayHelp("String_Node_Str");
    }
  }
;
  mgr.add(helpAction);
  PlatformUI.getWorkbench().getHelpSystem().setHelp(helpAction,"String_Node_Str");
  PlatformUI.getWorkbench().getHelpSystem().setHelp(form,"String_Node_Str");
  form.getToolBarManager().update(true);
}