/** * validate if change value is valid. * * @param changeValue change value. * @throws CommandException thrown if changeValue cannot be parsed properly. */ private void validateChangeValue(String changeValue) throws CommandException { Map<String, String> map = JobUtils.parseChangeValue(changeValue); if (map.size() > ALLOWED_CHANGE_OPTIONS.size() || !(map.containsKey(OozieClient.CHANGE_VALUE_PAUSETIME) || map.containsKey(OozieClient.CHANGE_VALUE_ENDTIME))) { throw new CommandException( ErrorCode.E1317, changeValue, "can only change pausetime or end time"); } if (map.containsKey(OozieClient.CHANGE_VALUE_PAUSETIME)) { isChangePauseTime = true; } else if (map.containsKey(OozieClient.CHANGE_VALUE_ENDTIME)) { isChangeEndTime = true; } else { throw new CommandException( ErrorCode.E1317, changeValue, "should change pausetime or endtime"); } if (isChangePauseTime) { String value = map.get(OozieClient.CHANGE_VALUE_PAUSETIME); if (!value.equals("")) { try { newPauseTime = DateUtils.parseDateOozieTZ(value); } catch (Exception ex) { throw new CommandException(ErrorCode.E1317, value, "is not a valid date"); } checkPauseTime(newPauseTime); } } else if (isChangeEndTime) { String value = map.get(OozieClient.CHANGE_VALUE_ENDTIME); if (!value.equals("")) { try { newEndTime = DateUtils.parseDateOozieTZ(value); } catch (Exception ex) { throw new CommandException(ErrorCode.E1317, value, "is not a valid date"); } checkEndTime(newEndTime); } } }