Program: 48965
Project: 48965
Buggy source:
@Override public RepeatStatus executeStep(ChunkContext chunkContext,JobExecutionStatusHolder jobExecutionStatusHolder) throws Exception {
  String clusterName=getJobParameters(chunkContext).getString(JobConstants.CLUSTER_NAME_JOB_PARAM);
  Long activeComputeNodeNum=getJobParameters(chunkContext).getLong(JobConstants.ACTIVE_COMPUTE_NODE_NUMBER_JOB_PARAM);
  String action=getJobParameters(chunkContext).getString(JobConstants.VHM_ACTION_JOB_PARAM);
  if (action != null) {
    vhmAction=action;
  }
  if (vhmAction == LimitInstruction.actionWaitForManual) {
    if (!diableAutoEalsticity(clusterName)) {
      throw TaskException.EXECUTION_FAILED("String_Node_Str" + clusterName + "String_Node_Str");
    }
  }
  MessageHandler listener=null;
  if (vhmAction == LimitInstruction.actionSetTarget || vhmAction == LimitInstruction.actionUnlimit) {
    StatusUpdater statusUpdater=new DefaultStatusUpdater(jobExecutionStatusHolder,getJobExecutionId(chunkContext));
    listener=new VHMReceiveListener(clusterName,statusUpdater);
  }
  Map<String,Object> sendParam=new HashMap<String,Object>();
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_VERSION,Constants.VHM_PROTOCOL_VERSION);
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_CLUSTER_NAME,clusterName);
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_INSTANCE_NUM,activeComputeNodeNum);
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_RECEIVE_ROUTE_KEY,CommonUtil.getUUID());
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_ACTION,vhmAction);
  Map<String,Object> ret=executionService.execute(new VHMMessageTask(sendParam,listener));
  if (!(Boolean)ret.get("String_Node_Str")) {
    String errorMessage=(String)ret.get("String_Node_Str");
    putIntoJobExecutionContext(chunkContext,JobConstants.CURRENT_ERROR_MESSAGE,errorMessage);
    throw TaskException.EXECUTION_FAILED(errorMessage);
  }
  return RepeatStatus.FINISHED;
}

Fixed version (ground truth):
@Override public RepeatStatus executeStep(ChunkContext chunkContext,JobExecutionStatusHolder jobExecutionStatusHolder) throws Exception {
  Map<String,JobParameter> allParameters=getJobParameters(chunkContext).getParameters();
  if (!allParameters.containsKey(JobConstants.VHM_ACTION_JOB_PARAM) && !allParameters.containsKey(JobConstants.ACTIVE_COMPUTE_NODE_NUMBER_JOB_PARAM)) {
    return RepeatStatus.FINISHED;
  }
  String clusterName=getJobParameters(chunkContext).getString(JobConstants.CLUSTER_NAME_JOB_PARAM);
  Long activeComputeNodeNum=getJobParameters(chunkContext).getLong(JobConstants.ACTIVE_COMPUTE_NODE_NUMBER_JOB_PARAM);
  String action=getJobParameters(chunkContext).getString(JobConstants.VHM_ACTION_JOB_PARAM);
  if (action != null) {
    vhmAction=action;
  }
  if (vhmAction == LimitInstruction.actionWaitForManual) {
    if (!diableAutoEalsticity(clusterName)) {
      throw TaskException.EXECUTION_FAILED("String_Node_Str" + clusterName + "String_Node_Str");
    }
  }
  MessageHandler listener=null;
  if (vhmAction == LimitInstruction.actionSetTarget || vhmAction == LimitInstruction.actionUnlimit) {
    StatusUpdater statusUpdater=new DefaultStatusUpdater(jobExecutionStatusHolder,getJobExecutionId(chunkContext));
    listener=new VHMReceiveListener(clusterName,statusUpdater);
  }
  Map<String,Object> sendParam=new HashMap<String,Object>();
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_VERSION,Constants.VHM_PROTOCOL_VERSION);
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_CLUSTER_NAME,clusterName);
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_INSTANCE_NUM,activeComputeNodeNum);
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_RECEIVE_ROUTE_KEY,CommonUtil.getUUID());
  sendParam.put(Constants.SET_MANUAL_ELASTICITY_INFO_ACTION,vhmAction);
  Map<String,Object> ret=executionService.execute(new VHMMessageTask(sendParam,listener));
  if (!(Boolean)ret.get("String_Node_Str")) {
    String errorMessage=(String)ret.get("String_Node_Str");
    putIntoJobExecutionContext(chunkContext,JobConstants.CURRENT_ERROR_MESSAGE,errorMessage);
    throw TaskException.EXECUTION_FAILED(errorMessage);
  }
  return RepeatStatus.FINISHED;
}