Source:
<code>public CoordinatorAction.Status reRunCoordAction(String cluster, CoordinatorAction coordinatorAction, Properties props, boolean isForced) throws FalconException { try { OozieClient client = OozieClientFactory.get(cluster); if (props == null) { props = new Properties(); } if (props.containsKey(OozieClient.RERUN_FAIL_NODES) && props.containsKey(OozieClient.RERUN_SKIP_NODES)) { LOG.warn("Both " + OozieClient.RERUN_SKIP_NODES + " and " + OozieClient.RERUN_FAIL_NODES + " are present in workflow params removing" + OozieClient.RERUN_SKIP_NODES); <START> props.remove(OozieClient.RERUN_SKIP_NODES); <END> } if (props.containsKey(OozieClient.RERUN_FAIL_NODES)) { isForced = false; } Properties jobprops; if (coordinatorAction.getExternalId() != null) { WorkflowJob jobInfo = client.getJobInfo(coordinatorAction.getExternalId()); jobprops = OozieUtils.toProperties(jobInfo.getConf()); jobprops.putAll(props); jobprops.remove(OozieClient.BUNDLE_APP_PATH); } else { jobprops = props; } client.reRunCoord(coordinatorAction.getJobId(), RestConstants.JOB_COORD_SCOPE_ACTION, Integer.toString(coordinatorAction.getActionNumber()), true, true, !isForced, jobprops); LOG.info("Rerun job on cluster {}", coordinatorAction.getId(), cluster); return assertCoordActionStatus(cluster, coordinatorAction.getId(), org.apache.oozie.client.CoordinatorAction.Status.RUNNING, org.apache.oozie.client.CoordinatorAction.Status.WAITING, org.apache.oozie.client.CoordinatorAction.Status.READY); } catch (Exception e) { LOG.error("Unable to rerun workflows", e); throw new FalconException(e); } }</code><technical_language>I understand oozie set properties together, removing property, throw a exception notify user? Else unintended user</technical_language>

Target:
public CoordinatorAction.Status reRunCoordAction(String cluster, CoordinatorAction coordinatorAction, Properties props, boolean isForced) throws FalconException { try { OozieClient client = OozieClientFactory.get(cluster); if (props == null) { props = new Properties(); } if (props.containsKey(OozieClient.RERUN_FAIL_NODES) && props.containsKey(OozieClient.RERUN_SKIP_NODES)) { String msg = "Both " + OozieClient.RERUN_SKIP_NODES + " and " + OozieClient.RERUN_FAIL_NODES + " are present in workflow params for " + coordinatorAction.getExternalId(); LOG.error(msg); throw new FalconException(msg); } if (props.containsKey(OozieClient.RERUN_FAIL_NODES)) { isForced = false; } Properties jobprops; if (coordinatorAction.getExternalId() != null) { WorkflowJob jobInfo = client.getJobInfo(coordinatorAction.getExternalId()); jobprops = OozieUtils.toProperties(jobInfo.getConf()); jobprops.remove(OozieClient.RERUN_FAIL_NODES); jobprops.remove(OozieClient.RERUN_SKIP_NODES); jobprops.putAll(props); jobprops.remove(OozieClient.BUNDLE_APP_PATH); } else { jobprops = props; } client.reRunCoord(coordinatorAction.getJobId(), RestConstants.JOB_COORD_SCOPE_ACTION, Integer.toString(coordinatorAction.getActionNumber()), true, true, !isForced, jobprops); LOG.info("Rerun job on cluster {}", coordinatorAction.getId(), cluster); return assertCoordActionStatus(cluster, coordinatorAction.getId(), org.apache.oozie.client.CoordinatorAction.Status.RUNNING, org.apache.oozie.client.CoordinatorAction.Status.WAITING, org.apache.oozie.client.CoordinatorAction.Status.READY); } catch (Exception e) { LOG.error("Unable to rerun workflows", e); throw new FalconException(e); } }