Program: 109955
Project: 109955
Buggy source:
public Thread makeRunner(final Survey survey,final Runner.BoxedBool interrupt){
  return new Thread(){
    public void run(){
      Tuple2<Thread,Runner.BoxedBool> threadData=new Tuple2(this,interrupt);
      ExperimentAction.addThisThread(survey,threadData);
      while (!interrupt.getInterrupt()) {
        try {
          Runner.run(survey,interrupt);
          System.out.println("String_Node_Str");
        }
 catch (        AccessKeyException ake) {
          Experiment.updateStatusLabel(String.format("String_Node_Str",ake.getMessage()));
          (new File(MturkLibrary.CONFIG)).delete();
          SurveyMan.LOGGER.fatal(ake);
          System.exit(-1);
        }
catch (        SurveyException se) {
          SurveyMan.LOGGER.warn(se);
          Experiment.updateStatusLabel(String.format("String_Node_Str",se.getMessage()));
          interrupt.setInterrupt(true);
        }
catch (        InsufficientFundsException ife) {
          SurveyMan.LOGGER.warn(ife);
          int opt=JOptionPane.showConfirmDialog(Display.frame,"String_Node_Str");
          if (opt == JOptionPane.NO_OPTION) {
            Experiment.updateStatusLabel(String.format("String_Node_Str",survey.sourceName));
            interrupt.setInterrupt(true);
          }
 else           if (opt == JOptionPane.CANCEL_OPTION) {
            Experiment.updateStatusLabel(String.format("String_Node_Str",survey.sourceName));
            Runner.saveJob(survey);
            interrupt.setInterrupt(true);
          }
        }
catch (        ServiceException mturkse) {
          SurveyMan.LOGGER.warn(mturkse);
          Experiment.updateStatusLabel(String.format("String_Node_Str",mturkse.getMessage()));
        }
catch (        IOException io) {
          SurveyMan.LOGGER.warn(io);
          Experiment.updateStatusLabel(String.format("String_Node_Str",io.getMessage()));
          interrupt.setInterrupt(true);
        }
      }
      ExperimentAction.removeThisThread(survey,threadData);
    }
  }
;
}

Fixed version (ground truth):
public Thread makeRunner(final Survey survey,final Runner.BoxedBool interrupt){
  return new Thread(){
    public void run(){
      Tuple2<Thread,Runner.BoxedBool> threadData=new Tuple2(this,interrupt);
      ExperimentAction.addThisThread(survey,threadData);
      while (!interrupt.getInterrupt()) {
        try {
          Runner.run(survey,interrupt);
          System.out.println("String_Node_Str");
        }
 catch (        AccessKeyException ake) {
          Experiment.updateStatusLabel(String.format("String_Node_Str",ake.getMessage()));
          (new File(MturkLibrary.CONFIG)).delete();
          SurveyMan.LOGGER.fatal(ake);
          System.exit(-1);
        }
catch (        SurveyException se) {
          SurveyMan.LOGGER.warn(se);
          Experiment.updateStatusLabel(String.format("String_Node_Str",se.getMessage()));
          interrupt.setInterrupt(true);
        }
catch (        InsufficientFundsException ife) {
          SurveyMan.LOGGER.warn(ife);
          int opt=JOptionPane.showConfirmDialog(Display.frame,"String_Node_Str");
          if (opt == JOptionPane.NO_OPTION) {
            Experiment.updateStatusLabel(String.format("String_Node_Str",survey.sourceName));
            interrupt.setInterrupt(true);
          }
 else           if (opt == JOptionPane.CANCEL_OPTION) {
            Experiment.updateStatusLabel(String.format("String_Node_Str",survey.sourceName));
            try {
              Runner.saveJob(survey,MturkLibrary.JobStatus.INTERRUPTED);
              interrupt.setInterrupt(true);
            }
 catch (            SurveyException se) {
              SurveyMan.LOGGER.info(se);
            }
catch (            IOException io) {
              SurveyMan.LOGGER.warn(io);
            }
          }
        }
catch (        ServiceException mturkse) {
          SurveyMan.LOGGER.warn(mturkse);
          Experiment.updateStatusLabel(String.format("String_Node_Str",mturkse.getMessage()));
        }
catch (        IOException io) {
          SurveyMan.LOGGER.warn(io);
          Experiment.updateStatusLabel(String.format("String_Node_Str",io.getMessage()));
          interrupt.setInterrupt(true);
        }
      }
      ExperimentAction.removeThisThread(survey,threadData);
    }
  }
;
}