Program: 48722
Project: 48722
Buggy source:
@Override public void doWork() throws Exception {
  boolean exit=false;
  logger.info("String_Node_Str" + targetName);
  OperationStatusWithDetail detailedStatus=null;
  SoftwareManagementClient monitorClient=new SoftwareManagementClient();
  monitorClient.init();
  while (!exit) {
    try {
      Thread.sleep(queryInterval);
    }
 catch (    InterruptedException e) {
      logger.info("String_Node_Str");
      stop=true;
    }
    if (stop) {
      logger.info("String_Node_Str");
      exit=true;
    }
    logger.info("String_Node_Str");
    detailedStatus=monitorClient.getOperationStatusWithDetail(targetName);
    if (null == detailedStatus) {
      logger.error("String_Node_Str");
      break;
    }
    logger.info("String_Node_Str" + detailedStatus.getOperationStatus().isFinished());
    logger.debug(detailedStatus.toString());
    logger.info("String_Node_Str");
    if (detailedStatus.getOperationStatus().getProgress() < 100) {
      int progress=detailedStatus.getOperationStatus().getProgress();
      statusUpdater.setProgress(((double)progress) / 100);
    }
    setLastErrorMsg(detailedStatus.getOperationStatus().getErrorMsg());
    clusterEntityMgr.handleOperationStatus(targetName.split("String_Node_Str")[0],detailedStatus);
    if (queryInterval == QUERY_INTERVAL_DEFAULT) {
      int size=detailedStatus.getClusterData().getClusterSize();
      if (size > BIG_CLUSTER_NODES_COUNT) {
        queryInterval=Math.min(QUERY_INTERVAL_MAX,QUERY_INTERVAL_LONG * (size / BIG_CLUSTER_NODES_COUNT));
        logger.info("String_Node_Str" + queryInterval / 1000 + "String_Node_Str" + size + "String_Node_Str");
      }
    }
  }
  if (monitorClient != null) {
    monitorClient.close();
  }
}

Fixed version (ground truth):
@Override public void doWork() throws Exception {
  boolean exit=false;
  logger.info("String_Node_Str" + targetName);
  OperationStatusWithDetail detailedStatus=null;
  SoftwareManagementClient monitorClient=new SoftwareManagementClient();
  monitorClient.init();
  while (!exit) {
    try {
      Thread.sleep(queryInterval);
    }
 catch (    InterruptedException e) {
      logger.info("String_Node_Str");
      stop=true;
    }
    if (stop) {
      logger.info("String_Node_Str");
      exit=true;
    }
    logger.info("String_Node_Str");
    detailedStatus=monitorClient.getOperationStatusWithDetail(targetName);
    if (null == detailedStatus) {
      logger.error("String_Node_Str");
      break;
    }
    logger.info("String_Node_Str" + detailedStatus.getOperationStatus().isFinished());
    logger.debug(detailedStatus.toString());
    logger.info("String_Node_Str");
    if (detailedStatus.getOperationStatus().getProgress() < 100) {
      int progress=detailedStatus.getOperationStatus().getProgress();
      statusUpdater.setProgress(((double)progress) / 100);
    }
    setLastErrorMsg(detailedStatus.getOperationStatus().getErrorMsg());
    clusterEntityMgr.handleOperationStatus(targetName.split("String_Node_Str")[0],detailedStatus,exit);
    if (queryInterval == QUERY_INTERVAL_DEFAULT) {
      int size=detailedStatus.getClusterData().getClusterSize();
      if (size > BIG_CLUSTER_NODES_COUNT) {
        queryInterval=Math.min(QUERY_INTERVAL_MAX,QUERY_INTERVAL_LONG * (size / BIG_CLUSTER_NODES_COUNT));
        logger.info("String_Node_Str" + queryInterval / 1000 + "String_Node_Str" + size + "String_Node_Str");
      }
    }
  }
  if (monitorClient != null) {
    monitorClient.close();
  }
}