Program: 109150
Project: 109150
Buggy source:
public void start(){
  if (logger.isLoggable(Level.FINER)) {
    logger.fine("String_Node_Str" + this.toString() + "String_Node_Str");
  }
 else {
    logger.fine("String_Node_Str" + getClass().getName() + "String_Node_Str");
  }
  if (scheduledFuture != null) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  if (config.getResultNameStrategy() == null)   throw new IllegalStateException("String_Node_Str");
  scheduledFuture=scheduledExecutorService.scheduleWithFixedDelay(new Runnable(){
    @Override public void run(){
      collectAndExport();
    }
  }
,config.getCollectInterval() / 2,config.getCollectInterval(),config.getCollectIntervalTimeUnit());
  if (config.getConfigReloadInterval() >= 0) {
    Runnable runnable=new Runnable(){
      private final Logger logger=Logger.getLogger(JmxTransExporter.class.getName() + "String_Node_Str");
      private long lastModified=configLoader.lastModified();
      @Override public void run(){
        long newLastModified=configLoader.lastModified();
        if (newLastModified == 0L) {
          if (logger.isLoggable(Level.FINER))           logger.finer("String_Node_Str" + lastModified + "String_Node_Str"+ new Timestamp(lastModified)+ "String_Node_Str"+ newLastModified);
        }
 else         if (newLastModified > lastModified) {
          logger.info("String_Node_Str" + configLoader);
          if (logger.isLoggable(Level.FINER))           logger.finer("String_Node_Str" + lastModified + "String_Node_Str"+ new Timestamp(lastModified)+ "String_Node_Str"+ newLastModified+ "String_Node_Str"+ new Timestamp(newLastModified));
          lastModified=newLastModified;
          stop();
          config=configLoader.loadConfiguration();
          start();
        }
 else {
          if (logger.isLoggable(Level.FINER))           logger.finer("String_Node_Str" + lastModified + "String_Node_Str"+ new Timestamp(lastModified)+ "String_Node_Str"+ newLastModified+ "String_Node_Str"+ new Timestamp(newLastModified));
        }
      }
    }
;
    int configReloadIntervalInSecs=Math.max(config.getConfigReloadInterval(),5);
    if (logger.isLoggable(Level.INFO))     logger.info("String_Node_Str" + configReloadIntervalInSecs + "String_Node_Str");
    scheduledExecutorService.scheduleWithFixedDelay(runnable,0,configReloadIntervalInSecs,TimeUnit.SECONDS);
  }
  logger.fine(getClass().getName() + "String_Node_Str");
}

Fixed version (ground truth):
public void start(){
  if (logger.isLoggable(Level.FINER)) {
    logger.fine("String_Node_Str" + this.toString() + "String_Node_Str");
  }
 else {
    logger.fine("String_Node_Str" + getClass().getName() + "String_Node_Str");
  }
  if (scheduledExecutorService != null || scheduledFuture != null)   throw new IllegalArgumentException("String_Node_Str" + scheduledExecutorService + "String_Node_Str"+ scheduledFuture);
  scheduledExecutorService=Executors.newScheduledThreadPool(1,threadFactory);
  if (config.getResultNameStrategy() == null)   throw new IllegalStateException("String_Node_Str");
  scheduledFuture=scheduledExecutorService.scheduleWithFixedDelay(new Runnable(){
    @Override public void run(){
      collectAndExport();
    }
  }
,config.getCollectInterval() / 2,config.getCollectInterval(),config.getCollectIntervalTimeUnit());
  if (config.getConfigReloadInterval() >= 0) {
    Runnable runnable=new Runnable(){
      private final Logger logger=Logger.getLogger(JmxTransExporter.class.getName() + "String_Node_Str");
      private long lastModified=configLoader.lastModified();
      @Override public void run(){
        long newLastModified=configLoader.lastModified();
        if (newLastModified == 0L) {
          if (logger.isLoggable(Level.FINER))           logger.finer("String_Node_Str" + lastModified + "String_Node_Str"+ new Timestamp(lastModified)+ "String_Node_Str"+ newLastModified);
        }
 else         if (newLastModified > lastModified) {
          logger.info("String_Node_Str" + configLoader);
          if (logger.isLoggable(Level.FINER))           logger.finer("String_Node_Str" + lastModified + "String_Node_Str"+ new Timestamp(lastModified)+ "String_Node_Str"+ newLastModified+ "String_Node_Str"+ new Timestamp(newLastModified));
          lastModified=newLastModified;
          stop();
          config=configLoader.loadConfiguration();
          start();
        }
 else {
          if (logger.isLoggable(Level.FINER))           logger.finer("String_Node_Str" + lastModified + "String_Node_Str"+ new Timestamp(lastModified)+ "String_Node_Str"+ newLastModified+ "String_Node_Str"+ new Timestamp(newLastModified));
        }
      }
    }
;
    int configReloadIntervalInSecs=Math.max(config.getConfigReloadInterval(),5);
    if (logger.isLoggable(Level.INFO))     logger.info("String_Node_Str" + configReloadIntervalInSecs + "String_Node_Str");
    scheduledExecutorService.scheduleWithFixedDelay(runnable,0,configReloadIntervalInSecs,TimeUnit.SECONDS);
  }
  logger.fine(getClass().getName() + "String_Node_Str");
}