diff --git a/amps/ags/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/retentionschedule/RetentionScheduleActionRelation.java b/amps/ags/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/retentionschedule/RetentionScheduleActionRelation.java index 614d22f6b74..5e9f056915e 100644 --- a/amps/ags/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/retentionschedule/RetentionScheduleActionRelation.java +++ b/amps/ags/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/retentionschedule/RetentionScheduleActionRelation.java @@ -197,22 +197,15 @@ private void retentionScheduleRequestValidation(RetentionScheduleActionDefinitio { throw new InvalidArgumentException("name value is invalid : " +retentionScheduleActionDefinition.getName()); } - // period value validation - if (invalidPeriodCheck(retentionScheduleActionDefinition.getPeriod())) - { - throw new InvalidArgumentException("period value is invalid : " +retentionScheduleActionDefinition.getPeriod()); - } + + validatePeriodAndPeriodProperty(retentionScheduleActionDefinition); + // event name validation if (invalidEventNameCheck(retentionScheduleActionDefinition.getEvents())) { throw new InvalidArgumentException("event value is invalid: " + retentionScheduleActionDefinition.getEvents()); } - if (validatePeriodProperty(retentionScheduleActionDefinition.getPeriodProperty())) - { - throw new InvalidArgumentException("periodProperty value is invalid: " + retentionScheduleActionDefinition.getPeriodProperty()); - } - if (validateCombineRetentionStepConditionsForNonAccessionStep(retentionScheduleActionDefinition)) { throw new IllegalArgumentException("combineRetentionStepConditions property is only valid for accession step. Not valid for :" + retentionScheduleActionDefinition.getName()); @@ -224,11 +217,20 @@ private void retentionScheduleRequestValidation(RetentionScheduleActionDefinitio } } - private boolean validatePeriodProperty(String periodProperty) + private void validatePeriodAndPeriodProperty(RetentionScheduleActionDefinition retentionScheduleActionDefinition) { + // period value validation + if (invalidPeriodCheck(retentionScheduleActionDefinition.getPeriod())) + { + throw new InvalidArgumentException("period value is invalid : " +retentionScheduleActionDefinition.getPeriod()); + } + // periodProperty validation List validPeriodProperties = Arrays.asList("cm:created", "rma:cutOffDate", "rma:dispositionAsOf"); - return validPeriodProperties.stream().noneMatch(periodProperty::equals); + if (validPeriodProperties.stream().noneMatch(retentionScheduleActionDefinition.getPeriodProperty()::equals)) + { + throw new InvalidArgumentException("periodProperty value is invalid: " + retentionScheduleActionDefinition.getPeriodProperty()); + } } private boolean validateCombineRetentionStepConditionsForNonAccessionStep(RetentionScheduleActionDefinition retentionScheduleActionDefinition)